Creado una versión básica del widget de archivos seleccionados

parent 3b316b94
import 'package:flutter/material.dart';
class PaginaPrincipal extends StatelessWidget {
import 'pagina_principal_llena.dart';
import 'pagina_principal_vacia.dart';
import 'dart:math';
class PaginaPrincipal extends StatefulWidget {
const PaginaPrincipal({super.key});
@override
State<PaginaPrincipal> createState() => _PaginaPrincipalState();
}
/*
* Al igual que en la lista de la compra, tenemos un estado que son
* los archivos seleccionados para realizar la conversión.
*
* Ese estado es consultado por la pantalla principal para determinar
* si
*/
Widget construirPaginaPrincipal() {
return PaginaPrincipalLlena();
}
class _PaginaPrincipalState extends State<PaginaPrincipal> {
@override
Widget build(BuildContext context) {
return const Placeholder();
return Scaffold(
appBar: AppBar(
title: Text(
"Convertex Prototipo"
),
backgroundColor: Theme.of(context).primaryColor,
),
body: construirPaginaPrincipal(),
);
}
}
import 'package:flutter/material.dart';
import 'package:prueba_multimedia/widget/archivo_widget.dart';
class PaginaPrincipalLlena extends StatelessWidget {
const PaginaPrincipalLlena({super.key});
static const ejemplo = ["Hola", "Esto es una prueba", "Ayuda"];
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.all(10.0),
child: ListView.separated(
itemCount: ejemplo.length,
separatorBuilder: (context, index) {
return const SizedBox(height: 8.0);
},
itemBuilder: (context, index) {
return ArchivoWidget(key: key, texto: ejemplo[index]);
},
),
);
}
}
import 'package:flutter/material.dart';
class PaginaPrincipalVacia extends StatelessWidget {
const PaginaPrincipalVacia({super.key});
@override
Widget build(BuildContext context) {
return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'No hay archivos seleccionados',
style: Theme.of(context).textTheme.titleLarge,
),
const SizedBox(height: 16,),
Text(
'Pulsa + para añadirlos',
style: Theme.of(context).textTheme.bodyMedium,
)
],
),
);
}
}
import 'package:flutter/material.dart';
class ArchivoWidget extends StatelessWidget {
final texto;
const ArchivoWidget({super.key, this.texto});
@override
Widget build(BuildContext context) {
return Row(
children: <Widget>[
const Icon(
Icons.file_open,
size: 30,
),
const SizedBox(width: 10,),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
texto,
style: Theme.of(context).textTheme.bodyLarge
),
Text(
texto,
style: Theme.of(context).textTheme.bodySmall
),
],
)
),
IconButton(
icon: Icon(Icons.edit),
onPressed: () {},
)
],
);
}
}
......@@ -131,6 +131,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.16.0"
nested:
dependency: transitive
description:
name: nested
sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
path:
dependency: transitive
description:
......@@ -139,6 +147,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.9.1"
provider:
dependency: "direct main"
description:
name: provider
sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c
url: "https://pub.dev"
source: hosted
version: "6.1.2"
sky_engine:
dependency: transitive
description: flutter
......
......@@ -34,6 +34,7 @@ dependencies:
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.8
provider: ^6.1.2
dev_dependencies:
flutter_test:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment