Estilos de texto del tema
Parte de la sección Diseños que se adaptan del Journey de Flutter de Coddy. Lección 23 de 30.
El tema contiene estilos de texto y colores en su textTheme. Cada estilo tiene un nombre según su función, de grande a pequeño: displayLarge, headlineMedium, titleLarge, bodyMedium, labelLarge y otros.
Para usar uno, léelo del tema y pásalo como style::
Text('Hello', style: Theme.of(context).textTheme.headlineMedium)Un Text sin estilo usa bodyMedium, cuyo tamaño es 14. Para cambiar todo el texto sin formato de la aplicación de una sola vez, asigna tu propio bodyMedium al tema:
ThemeData(
textTheme: const TextTheme(
bodyMedium: TextStyle(fontSize: 16),
),
)Flutter completa con los valores predeterminados todos los estilos que omitas, así que solo tienes que escribir los que cambies.
Desafío
FácilAplica el estilo del tema al diario:
- haz que
Todayuse el estiloheadlineMediumdel tema - en
ThemeData, establece el tamaño del texto sin formato en18con tu propiobodyMedium
Pruébalo tú mismo
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.green),
),
home: const HomeScreen(),
);
}
}
class HomeScreen extends StatelessWidget {
const HomeScreen({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Garden Journal')),
body: Padding(
padding: const EdgeInsets.all(16),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const Text('Today'),
const SizedBox(height: 8),
const Text('Water the tomatoes in the morning.'),
const Text('Pick the first beans on Friday.'),
],
),
),
);
}
}
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Diseños que se adaptan
1Compartir una fila
Expanded ocupa toda la filaCompartir espacio con flexFlexible se ajusta a su hijoSpacer separa los elementos4Tamaños y puntos de ruptura
Ancho completo: double.infinityUn ancho máximoTamaño de pantalla: MediaQueryPuntos de ruptura con LayoutBuilder2El error de desbordamiento
El error de desbordamientoSolución al desbordamiento: expandirSolución al desbordamiento: desplazamientoSolución al desbordamiento: ajustarEspaciado dentro de un ajuste5Enumeraciones y switch
Enumeraciones para tipos de pantallaUsar switch con una enumeraciónExpresiones switch3Apilar widgets
Apilar widgets uno encima de otroPosicionado en una esquinaAlinear dentro de una cajaSafeArea y la muesca6Temas y modo oscuro
Un tema para la app a partir de una semillaColores de Theme.of(context)Estilos de texto del temaUn tema oscuroUn interruptor para el modo oscuroPractica por tu cuenta: Compilador de Flutter online