Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
687 of 1024 menu
◀ ▶

Метод of

Метод of виджета Theme принимает context и поднимается к ближайшему Theme. На выходе объект ThemeData. Без Theme в предках Flutter выбросит ошибку.

Синтаксис

Theme.of(context)

Параметры

Параметр Описание
context BuildContext виджета, от которого ищут Theme.

Пример

Давайте выведем brightness темы на экран:

import 'package:flutter/material.dart'; class BrightnessLabel extends StatelessWidget { const BrightnessLabel({super.key}); @override Widget build(BuildContext context) { var data = Theme.of(context); return Text('abcde'); } } void main() { runApp( MaterialApp( theme: ThemeData.light(), home: Theme( data: ThemeData.light(), child: Scaffold( body: Center( child: BrightnessLabel(), ), ), ), ), ); }

На экране по центру появится строка 'abcde' на фоне светлой ThemeData из Theme.of.

Пример

Давайте прочитаем цвет текста из textTheme:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Theme( data: ThemeData( textTheme: TextTheme( bodyMedium: TextStyle(color: Colors.blue), ), ), child: Builder( builder: (context) { var style = Theme.of(context).textTheme.bodyMedium; return Scaffold( body: Center( child: Text( '12345', style: style, ), ), ); }, ), ), ), ); }

На экране строка '12345' станет синей из настроенного textTheme.

Смотрите также

  • метод maybeOf,
    который не бросает ошибку без Theme
  • виджет Theme,
    который кладёт ThemeData в дерево
  • класс ThemeData,
    который возвращает метод of
  • класс TextTheme,
    который лежит внутри ThemeData
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить