Back to questions
Junior — Middle
78
Можешь привести пример применения InheritedWidget в Flutter?
Companies where asked
Другойкод
Answer from AI
sobes.tech AI
InheritedWidget в Flutter используется для передачи данных вниз по дереву виджетов без необходимости явно передавать их через конструкторы каждого дочернего виджета.
Пример применения: создание темы или настроек, которые должны быть доступны многим виджетам в приложении.
Простой пример — передача строки с настройкой цвета:
class MySettings extends InheritedWidget {
final Color color;
const MySettings({
Key? key,
required this.color,
required Widget child,
}) : super(key: key, child: child);
static MySettings? of(BuildContext context) {
return context.dependOnInheritedWidgetOfExactType<MySettings>();
}
@override
bool updateShouldNotify(MySettings oldWidget) => color != oldWidget.color;
}
// Использование:
class ColoredText extends StatelessWidget {
@override
Widget build(BuildContext context) {
final settings = MySettings.of(context);
return Text(
'Привет, Flutter!',
style: TextStyle(color: settings?.color ?? Colors.black),
);
}
}
Таким образом, все виджеты внутри MySettings могут получить доступ к цвету без передачи параметров вручную.