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.