Sobes.tech
Назад к вопросам
Junior — Middle
79

Можешь привести пример применения InheritedWidget в Flutter?

Компании, где спрашивали
Другойкод

Ответ от нейросети

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 могут получить доступ к цвету без передачи параметров вручную.