Cómo usar temas en Flutter

Introducción

Índice
  1. Introducción
  • Prerrequisitos
  • Paso 1: Configuración del proyecto
  • Paso 2: Uso de temas predeterminados
  • Paso 3: Uso de temas globales
  • Paso 4: Adaptación de temas
  • Paso 5: Uso de temas
  • Conclusión
  • Flutter cuenta con el respaldo de paquetes de interfaces de usuario (UI) como los sistemas de diseño Material y Cupertino. Estos sistemas de diseño sirven para brindar una solución para lograr una estética coherente y consistente en toda la aplicación.

    Sin embargo, confiar únicamente en los patrones de diseño predeterminados no puede ajustarse a sus necesidades desde una perspectiva de marca. Es posible que prefiera utilizar los valores predeterminados como base a partir de los cuales pueda aplicar personalizaciones.

    En este artículo, explorará algunos de los métodos para cambiar el aspecto general de sus aplicaciones con temas de Flutter.

    Prerrequisitos

    Para seguir este artículo necesitarás:

    • Para descargar e instalar Flutter.
    • Para descargar e instalar Android Studio o Visual Studio Code.
    • Se recomienda instalar complementos para su editor de código:
      • Fluttery Dartcomplementos instalados para Android Studio.
      • Flutterextensión instalada para Visual Studio Code.

    Este artículo fue verificado con Flutter v1.22.2, Android SDK v30.0.2 y Android Studio v4.1.

    Paso 1: Configuración del proyecto

    Para los fines de este artículo, confiará en la aplicación de demostración que se genera cuando se crea una nueva aplicación Flutter.

    Una vez que haya configurado su entorno para Flutter, puede ejecutar lo siguiente para crear una nueva aplicación:

    1. flutter create flutter_themes_example

    Navegue hasta el nuevo directorio del proyecto:

    1. cd flutter_themes_example

    El uso flutter createproducirá una aplicación de demostración que mostrará la cantidad de veces que se hace clic en un botón:

    Ahora que tienes una aplicación Flutter en funcionamiento que utiliza los componentes de interfaz de usuario de Material Design, puedes aplicar la primera personalización al tema.

    Paso 2: Uso de temas predeterminados

    El paquete Material de Google viene con dos temas integrados: una versión clara (que es la predeterminada) y una versión oscura.

    Para configurar los estilos en toda la aplicación, deberá configurar el tema en un método en ThemeDatael MaterialAppwidget, en este caso, las opciones light()o dark().

    Ábrelo main.darten tu editor de código y modifícalo themea ThemeData.dark():

    lib/main.dart

    // ...class MyApp extends StatelessWidget {  @override  Widget build(BuildContext context) {    return MaterialApp(      title: 'Flutter Demo',      theme: ThemeData.dark(),      home: MyHomePage(title: 'Flutter Demo Home Page'),    );  }}// ...

    Compila tu código y ejecútalo en un emulador:

    A continuación, puedes probar la personalización avanzada del tema.

    Paso 3: Uso de temas globales

    También es posible pasar parámetros directamente a ThemeData. La documentación oficial enumera todas las propiedades disponibles, que incluyen primaryColor, fontFamily, y cursorColor.

    Algunas de las propiedades de ThemeDatatambién tienen una contraparte de brillo, que controla los widgets que se encuentran sobre ellas. Por lo tanto, accentColorcambiaría el botón, pero accentColorBrightnesscambiará el texto o el ícono del botón. Deberá usar las propiedades lighto de para lograrlo.darkBrightness

    Ábralo main.darten un editor de código y modifíquelo ThemeDatapara usar un primaryColor, accentColor, y accentColorBrightness:

    lib/main.dart

    // ...class MyApp extends StatelessWidget {  @override  Widget build(BuildContext context) {    return MaterialApp(      title: 'Flutter Demo',      theme: ThemeData(        primaryColor: Colors.purple[800],        accentColor: Colors.amber,        accentColorBrightness: Brightness.dark      ),      home: MyHomePage(title: 'Flutter Demo Home Page'),    );  }}// ...

    Compila tu código y ejecútalo en un emulador:

    La barra de aplicaciones aparece en un tono violeta con texto blanco. El botón aparece en color ámbar con símbolos oscurecidos.

    A continuación, puedes intentar ampliar los temas.

    Paso 4: Adaptación de temas

    También es posible tomar un tema existente y sobrescribir solo ciertas propiedades. Para ampliar un tema, puede utilizar el copyWithmétodo para extenderlo y pasarle sus estilos personalizados.

    Ábralo main.darten un editor de código y modifíquelo ThemeDatapara ampliar el darktema:

    lib/main.dart

    // ...class MyApp extends StatelessWidget {  @override  Widget build(BuildContext context) {    return MaterialApp(      title: 'Flutter Demo',      theme: ThemeData.dark().copyWith(        primaryColor: Colors.purple[800],        accentColor: Colors.amber,      ),      home: MyHomePage(title: 'Flutter Demo Home Page'),    );  }}// ...

    Compila tu código y ejecútalo en un emulador:

    El contenido principal de la aplicación aparece oscuro con texto claro. Sin embargo, la AppBar no es negra como en el experimento anterior con tema oscuro. La AppBar es violeta. El botón no es turquesa como en el experimento anterior con tema oscuro. El botón es ámbar.

    A continuación, verás cómo aplicar temas a los widgets.

    Paso 5: Uso de temas

    Los experimentos anteriores se basaron en widgets de Material. Estos widgets se desarrollaron para usar ThemeData. Si tuvieras que crear un nuevo widget personalizado, deberás asegurarte de que se puedan pasar las propiedades del tema. Puede usar Theme.of()para acceder a todas las propiedades en ThemeData.

    A continuación se muestra un ejemplo de modificación del botón existente para utilizar diferentes propiedades de tema ThemeData:

    lib/main.dart

    // ...class _MyHomePageState extends StateMyHomePage {  // ...  @override  Widget build(BuildContext context) {    return Scaffold(      // ...      floatingActionButton: FloatingActionButton(        onPressed: _incrementCounter,        tooltip: 'Increment',        backgroundColor: Theme.of(context).primaryColor,        foregroundColor: Theme.of(context).primaryColorLight,        child: Icon(Icons.add),      ),    );  }}

    Compila tu código y ejecútalo en un emulador.

    En lugar de un botón turquesa, deberías observar un botón oscuro con un ícono claro.

    Conclusión

    En este artículo, aprendí a usar, personalizar y ampliar temas en Flutter.

    Los temas son una herramienta poderosa para crear una estética consistente y cohesiva en toda su aplicación.

    Consulte la documentación oficial para más información.

    SUSCRÍBETE A NUESTRO BOLETÍN 
    No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir

    Este sitio web utiliza cookies para mejorar tu experiencia mientras navegas por él. Este sitio web utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando, aceptas su uso. Mas informacion