Метод of
Метод of виджета CupertinoTheme
ищет ближайшую тему Cupertino от переданного контекста вверх по дереву.
Из темы берут цвета, шрифт и яркость для виджетов iOS-стиля.
Синтаксис
CupertinoTheme.of(context)
Параметры
| Параметр | Описание |
|---|---|
context | BuildContext под CupertinoTheme или CupertinoApp. |
Пример
Давайте выведем brightness через of:
import 'package:flutter/cupertino.dart';
void main() {
runApp( CupertinoApp( home: Demo(), ), );
}
class Demo extends StatelessWidget {
@override
Widget build(BuildContext context) {
final bright = CupertinoTheme.of(context).brightness;
final label = bright == Brightness.dark ? 'abcde' : '12345';
return CupertinoPageScaffold( child: Center(child: Text(label)), );
}
}
На экране текст '12345' или 'abcde' по brightness из of.
Пример
Давайте обернём of в CupertinoTheme с dark:
import 'package:flutter/cupertino.dart';
void main() {
runApp( CupertinoApp( home: Demo(), ), );
}
class Demo extends StatelessWidget {
@override
Widget build(BuildContext context) {
return CupertinoPageScaffold( child: CupertinoTheme( data: const CupertinoThemeData(brightness: Brightness.dark),
child: Builder( builder: (ctx) {
final b = CupertinoTheme.of(ctx).brightness;
return Center( child: Text(b == Brightness.dark ? 'abcde' : '12345'), );
}
, ), ), );
}
}
Builder вызовет of внутри тёмной темы; на экране 'abcde'.
Смотрите также
-
виджет
CupertinoApp,
корень приложения iOS -
виджет
CupertinoPageScaffold,
экран с панелью iOS -
виджет
CupertinoNavigationBar,
верхняя панель iOS -
виджет
CupertinoButton,
кнопка iOS