Navegación y transferencia de datos entre pantallas en Flutter
Clase 12 de 26 • Curso de Flutter
Contenido del curso
Introducción a Flutter y Dart
Widgets en Flutter
Manejo de Recursos y Formularios
Navegación y APIs
Gestión de Estados
- 15

Implementación de ListView con FutureBuilder para APIs en Flutter
08:49 - 16

Manejo de Errores y Cargas en Aplicaciones con API
07:04 - 17

Creación de modelos de datos en Flutter con Dart
09:43 - 18

Uso de Provider para Gestión de Estado en Flutter
14:07 - 19

"Gestión de Favoritos en Aplicaciones con Stateful Widgets"
30:47 - 20

Detalles de Recetas en Flutter: Implementación y Visualización
05:08
Experiencia de Usuario
Publicación de Apps
Resumen
Las aplicaciones modernas suelen requerir múltiples pantallas para organizar sus funcionalidades de manera eficiente. Aquí exploraremos cómo crear una nueva pantalla en Flutter, navegar entre ellas y pasar datos de una a otra, logrando una experiencia de usuario dinámica.
¿Cómo se crea una nueva pantalla en Flutter?
- Crea un archivo para la nueva pantalla, por ejemplo,
recipe_detail.dart. - Define un
StatefulWidgetllamadoRecipeDetailpara mantener el estado de la pantalla. - Importa el paquete
material.dartpara acceder a las herramientas de diseño de Flutter. - Usa un
Scaffoldpara estructurar la página:- Incluye una
AppBarcon un botón que permita regresar a la pantalla anterior. - Agrega un ícono, como
Icons.arrow_back, configurado con un color contrastante para destacarlo.
- Incluye una
Código clave:
AppBar(
leading: IconButton(
icon: Icon(Icons.arrow_back, color: Colors.white),
onPressed: () => Navigator.pop(context),
),
backgroundColor: Colors.orange,
title: Text('Detalle de Receta'),
)
¿Cómo se navega desde la pantalla principal a la nueva pantalla?
- Usa un
GestureDetectorpara capturar eventos de clic en elementos como tarjetas o botones. - Implementa la función
Navigator.push()para redirigir al usuario:- Define un
MaterialPageRouteque apunta a la nueva pantalla. - Asegúrate de importar el archivo correspondiente.
- Define un
Código clave:
GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => RecipeDetail(recipeName: 'Lasaña')),
);
},
child: Card(
child: Text('Ver detalle'),
),
)
¿Cómo se pasa información entre pantallas?
- Define un constructor en la nueva pantalla para recibir datos, como el nombre de una receta.
- Usa el modificador
finalpara garantizar que los datos sean inmutables. - Muestra la información recibida en un widget, como un
Text.
Código clave:
class RecipeDetail extends StatelessWidget {
final String recipeName;
const RecipeDetail({Key? key, required this.recipeName}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(recipeName),
backgroundColor: Colors.orange,
),
body: Center(
child: Text('Receta: $recipeName'),
),
);
}
}
¿Cómo asegurar la navegación inversa?
- Implementa el método
Navigator.pop(context)en el botón de regreso. - Flutter maneja automáticamente el historial de navegación, asegurando que el usuario pueda regresar sin complicaciones.
¿Qué podemos lograr con esta funcionalidad?
- Crear pantallas dinámicas que presenten detalles específicos basados en datos enviados desde la pantalla principal.
- Facilitar una navegación fluida entre secciones de la aplicación, mejorando la usabilidad.