テーマから取得するテキストスタイル
CoddyのFlutterジャーニー「画面サイズに合わせたレイアウト」セクションの一部。レッスン 23/30。
テーマには色だけでなく、textThemeにテキストスタイルも含まれています。それぞれのスタイルには、大きいものから小さいものまで、用途に応じた名前が付いています。displayLarge、headlineMedium、titleLarge、bodyMedium、labelLargeなどがあります。
スタイルを使うには、テーマから読み取り、style:として渡します。
Text('Hello', style: Theme.of(context).textTheme.headlineMedium)スタイルを指定しないTextには、サイズが14のbodyMediumが使われます。アプリ内のすべての通常のテキストを一度に変更するには、独自のbodyMediumをテーマに設定します。
ThemeData(
textTheme: const TextTheme(
bodyMedium: TextStyle(fontSize: 16),
),
)Flutterは、指定しなかったスタイルをすべてデフォルト値で補うため、変更するものだけを書けば十分です。
チャレンジ
簡単テーマを使って日誌のスタイルを設定します。
TodayにテーマのheadlineMediumスタイルを適用しますThemeDataで、独自のbodyMediumを使って通常のテキストサイズを18にします
自分で試してみよう
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.'),
],
),
),
);
}
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
画面サイズに合わせたレイアウトのすべてのレッスン
自分で練習してみよう: Flutterオンラインコンパイラ