Sobes.tech
Junior — Middle

Podes dar um exemplo de uso do InheritedWidget no Flutter?

sobes.tech IA

Resposta da IA

InheritedWidget no Flutter é usado para transmitir dados para baixo na árvore de widgets sem a necessidade de passá-los explicitamente através dos construtores de cada widget filho.

Exemplo de uso: criar temas ou configurações que devem estar disponíveis para muitos widgets na aplicação.

Um exemplo simples é passar uma string com a configuração de cor:

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;
}

// Uso:

class ColoredText extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final settings = MySettings.of(context);
    return Text(
      'Olá, Flutter!',
      style: TextStyle(color: settings?.color ?? Colors.black),
    );
  }
}

Dessa forma, todos os widgets dentro de MySettings podem acessar a cor sem passar parâmetros manualmente.