Menu
CoddyTech

Стили текста из темы

Часть раздела Адаптивная компоновка путешествия по Flutter на Coddy. Урок 23 из 30.

Тема содержит не только цвета, но и стили текста — в textTheme. Каждый стиль имеет название, соответствующее его назначению, от крупного к мелкому: displayLarge, headlineMedium, titleLarge, bodyMedium, labelLarge и другие.

Чтобы использовать стиль, прочитай его из темы и передай как style::

Text('Hello', style: Theme.of(context).textTheme.headlineMedium)

В Text без заданного стиля используется bodyMedium размером 14. Чтобы изменить весь обычный текст в приложении сразу, задай теме собственный bodyMedium:

ThemeData(
  textTheme: const TextTheme(
    bodyMedium: TextStyle(fontSize: 16),
  ),
)

Flutter подставляет значения по умолчанию для всех стилей, которые ты не указал, поэтому нужно написать только те, которые ты меняешь.

challenge icon

Задание

Легко

Оформите журнал с помощью темы:

  • задайте для Today стиль темы headlineMedium
  • в ThemeData задайте для обычного текста размер 18, используя собственный bodyMedium

Попробуйте сами

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.'),
          ],
        ),
      ),
    );
  }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Адаптивная компоновка

Потренируйтесь самостоятельно: Онлайн-компилятор Flutter