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

Метод maybeOf

Метод maybeOf виджета Theme ищет ближайшую тему от контекста вверх по дереву. Если темы нет, метод возвращает пустое значение и не бросает ошибку. Метод of в том же случае бросает ошибку.

Синтаксис

Theme.maybeOf(context)

Параметры

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

Пример

Давайте прочитаем тему там, где Theme задан:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Theme( data: ThemeData.light(), child: Builder( builder: (context) { var res = Theme.maybeOf(context); print(res?.brightness); return Scaffold( body: Center( child: Text('abcde'), ), ); }, ), ), ), ); }

На экране по центру появится строка 'abcde', потому что maybeOf нашёл Theme в предках.

Пример

Давайте вызовем maybeOf без Theme в предках:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Builder( builder: (context) { var res = Theme.maybeOf(context); print(res == null); return Scaffold( body: Center( child: Text('12345'), ), ); }, ), ), ); }

На экране по центру появится '12345'; maybeOf вернёт ThemeData от MaterialApp без отдельного виджета Theme.

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

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