Textstile aus dem Theme
Teil des Abschnitts Layouts für jede Bildschirmgröße der Flutter-Journey von Coddy. Lektion 23 von 30.
Das Design enthält neben Farben auch Textstile in seinem textTheme. Jeder Stil hat einen Namen, der seiner Funktion entspricht, von groß bis klein: displayLarge, headlineMedium, titleLarge, bodyMedium, labelLarge und weitere.
Um einen Stil zu verwenden, lies ihn aus dem Design aus und übergib ihn als style::
Text('Hello', style: Theme.of(context).textTheme.headlineMedium)Ein Text ohne Stil verwendet bodyMedium, dessen Größe 14 beträgt. Um alle einfachen Texte in der App auf einmal zu ändern, gib dem Design dein eigenes bodyMedium:
ThemeData(
textTheme: const TextTheme(
bodyMedium: TextStyle(fontSize: 16),
),
)Flutter ergänzt jeden Stil, den du auslässt, durch den Standardstil, sodass du nur die Stile angeben musst, die du änderst.
Aufgabe
EinfachGestalte das Journal mithilfe des Designs:
- Verwende für
Todayden StilheadlineMediumdes Designs - Lege in
ThemeDatafür einfachen Text die Größe18mit deinem eigenenbodyMediumfest
Probier es selbst
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.'),
],
),
),
);
}
}
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Layouts für jede Bildschirmgröße
1Eine Zeile teilen
Expanded füllt die ZeilePlatz teilen mit flexFlexible umschließt sein KindSpacer schafft Abstand3Widgets stapeln
Widgets übereinander stapelnIn einer Ecke positionierenIn einer Box ausrichtenSafeArea und die Notch6Designs und Dunkelmodus
Ein App-Theme aus einem SeedTheme.of(context)-FarbenTextstile aus dem ThemeEin dunkles ThemeEin Dunkelmodus-SchalterÜbe selbstständig: Online-Flutter-Compiler