No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Flutter

Curso de Flutter

Alison Jimenez

Alison Jimenez

¿Cómo estructurar pantallas en Flutter con TabBar?

7/26
Recursos

Aquí aprenderás a estructurar y gestionar pantallas en tu aplicación, integrándolas de manera organizada y funcional en tu proyecto Flutter. Descubre cómo configurar un sistema de navegación con pestañas para mejorar la experiencia del usuario.

¿Cómo estructurar las pantallas de tu aplicación?

  • Crea una carpeta específica: Dentro de tu proyecto, organiza tus pantallas en una nueva carpeta llamada screens.
  • Configura una pantalla inicial: Crea un archivo como home_screen.dart para tu pantalla principal.
  • Usa la convención UpperCamelCase: Al nombrar clases como HomeScreen, asegúrate de respetar esta convención para mantener la legibilidad.

¿Cómo mover componentes del main a la pantalla principal?

  • Identifica los componentes existentes: Ubica elementos como contenedores en el archivo principal main.dart.
  • Reubica los widgets al nuevo archivo: Transfiere estos componentes al archivo de la pantalla principal (home_screen.dart), utilizando el widget Scaffold para estructurarlos.
  • Reemplaza el child por body: En el Scaffold, usa body en lugar de child para mayor claridad y funcionalidad.

¿Cómo implementar una barra de navegación con pestañas?

  • Agrega un AppBar con TabBar: Incluye una barra de navegación inferior (TabBar) dentro de tu AppBar.
  • Configura pestañas iniciales:
    • Usa widgets de Icon para representar visualmente las pestañas.
    • Agrega texto descriptivo con el widget Text.
  • Utiliza un TabBarView: Define un TabBarView para que las pestañas muestren diferentes pantallas.

¿Cómo solucionar errores al configurar el TabBar?

  • Envuelve el Scaffold con un controlador: Usa el widget DefaultTabController para manejar las pestañas.
  • Configura propiedades adicionales:
    • Ajusta el indicador de la pestaña activa con un color distintivo.
    • Personaliza el texto con colores para estados seleccionados y no seleccionados.
  • Gestiona errores en el emulador: Si surgen problemas al guardar, refresca el proyecto desde la línea final para aplicar cambios correctamente.

¿Qué más puedes personalizar en tu TabBar?

  • Añade más pestañas: Amplía tu navegación agregando más pantallas al listado de pestañas.
  • Optimiza el diseño:
    • Define un máximo de pestañas visibles.
    • Configura colores consistentes con el tema de tu aplicación.

Aportes 6

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Si no les funciona ALT + ENTER , pueden intenta con CTRL + .
Buenas tardes, como sugerencia a los videos, veo que la profesora usa atajos que no menciona y tenemos que estar retrocediendo los videos para revisar una y otra vez. Como por ejemplo en el min 1:18 de este video. Deben explicarlo de forma más pausada tomando en cuenta que es un curso desde cero. Muchas gracias
#### **1. Entendiendo la Estructura de un Proyecto Flutter** * `lib/main.dart`: Es el archivo principal donde comienza tu app. Aquí defines la estructura básica de tu aplicación. * void main() { runApp(MyApp()); } * **Carpetas Comunes**: * `android` **y** `ios`: Contienen los archivos específicos para cada plataforma, como configuraciones de permisos y gradle. * `pubspec.yaml`: Archivo donde defines: * **Paquetes**: Dependencias externas para tu proyecto. * **Fuentes y Recursos**: Como imágenes y fuentes personalizadas. #### **2. Widgets Básicos en Flutter** Los widgets son bloques fundamentales de construcción en Flutter. Todo lo que ves en pantalla es un **widget**. * `Scaffold`: La base para crear una pantalla con estructura estándar (AppBar, Body, etc.). * ```js Scaffold( appBar: AppBar(title: Text('Mi App')), body: Center(child: Text('Hola Flutter!')), ) ```Scaffold( * appBar: AppBar(title: Text('Mi App')), * body: Center(child: Text('Hola Flutter!')), * ) * * `Container`: Un widget versátil para diseño, con propiedades como `color`, `padding`, y `margin`. * ```js Container( padding: EdgeInsets.all(16), margin: EdgeInsets.all(8), color: Colors.blue, child: Text('Soy un Container'), ) ```Container( * padding: EdgeInsets.all(16), * margin: EdgeInsets.all(8), * color: Colors.blue, * child: Text('Soy un Container'), * ) * * `Text`: Muestra texto en pantalla con personalización. * ```js Text( 'Hola Mundo!', style: TextStyle(fontSize: 24, color: Colors.black), ) ```Text( * 'Hola Mundo!', * style: TextStyle(fontSize: 24, color: Colors.black), * ) * * `Row` **y** `Column`: Sirven para organizar widgets horizontal (Row) o verticalmente (Column). * ```js Column( mainAxisAlignment: MainAxisAlignment.center, children: [Text('Fila 1'), Text('Fila 2')], ) ```Column( * mainAxisAlignment: MainAxisAlignment.center, * children: \[Text('Fila 1'), Text('Fila 2')], * ) * * `ListView`: Para listas desplazables dinámicas o estáticas. * ```js ListView( children: [ ListTile(title: Text('Elemento 1')), ListTile(title: Text('Elemento 2')), ], ) ```ListView( * children: \[ * ListTile(title: Text('Elemento 1')), * ListTile(title: Text('Elemento 2')), * ], * ) * #### **3. ¿Qué es el Árbol de Widgets en Flutter?** Un **árbol de widgets** es la representación visual de tu interfaz en Flutter. Los widgets están organizados en una jerarquía donde cada widget es un **nodo** que puede contener otros widgets. * **Ejemplo de Árbol de Widgets**: * MaterialApp └── Scaffold ├── AppBar └── Body └── Center └── Text * Cada widget en este árbol se encarga de una parte específica de la pantalla. 🔗 **Más información sobre el Árbol de Widgets**: [keepcoding.io](https://keepcoding.io/blog/que-es-arbol-de-widgets-en-flutter/#:~:text=Un%20%C3%A1rbol%20de%20widgets%20en%20Flutter%20es%20una%20representaci%C3%B3n%20visual,y%20puede%20contener%20otros%20widgets.) 💡 **Consejo Final**: Explora con ejemplos simples y aprende cómo interactúan los widgets entre sí. Flutter es poderoso porque te permite diseñar interfaces complejas con facilidad. 🚀
![](https://static.platzi.com/media/user_upload/%7BD86432FD-02E3-4740-B852-7A85F8AA1E72%7D-0098b4f7-258c-438a-839f-553f81f92573.jpg)
En el minuto 1:18 En este caso, lo que se hizo es algo llamado, separar responsabilidade. En este lo que se hizo fue separar el cuerpo de la pantalla (Body), en una clase nueva, a la cual se le llamo HomeScreen. Al crear la nueva clase, se agrego simplemente una hoja de trabajo (Scaffold) y se pego el código que estaba en el main, la clase RecipeBook (propiedad body), en la propiedad 'body' del Scaffold. Separar el código en Flutter por clases y widgets tiene múltiples beneficios que contribuyen a la calidad, mantenibilidad y escalabilidad del desarrollo de aplicaciones. * Reutilización del código * Legibilidad y organización * Facilidad para pruebas y depuración * Mantenibilidad * Modularidad * Rendimiento Todo lo anterior permitirá optimizar tanto la experiencia del desarrollador (quien desarrollo y quien es nuevo y se topa con el proyecto) como la del usuario final.
Me llama mucho la atención el curso, pero se me hace muy difícil de seguir todo lo que hace y cuando veo los recursos, no es código de la clase. Realmente quiero aprender, tener en cuenta que no sé mucho de programación. Pensé que sería como los otros cursos, no pido que sea muy básico, sino que no enseñe como si estuviera x2