ValueNotifier é uma classe em Flutter que implementa um padrão de notificação de mudanças. Ela é uma forma simples de criar objetos observáveis que podem ser utilizados para notificar a ocorrência de alterações em seu valor, permitindo a atualização de widgets que dependem desses valores.
Aqui está um exemplo básico de como usar o ValueNotifier:
Criando um ValueNotifier e Observando Mudanças:
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
final ValueNotifier<int> counter = ValueNotifier<int>(0);
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('ValueNotifier Example'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ValueListenableBuilder(
valueListenable: counter,
builder: (context, value, _) {
return Text(
'Contador: $value',
style: TextStyle(fontSize: 24),
);
},
),
SizedBox(height: 20),
ElevatedButton(
onPressed: () {
counter.value++; // Incrementa o valor do ValueNotifier
},
child: Text('Incrementar'),
),
],
),
),
),
);
}
}
Neste exemplo:
ValueNotifier<int>é umValueNotifierque mantém um valor inteiro.ValueListenableBuilderé um widget que escuta as mudanças noValueNotifiere reconstrói o widget sempre que o valor dentro dele muda.O botão "Incrementar" aumenta o valor do
ValueNotifierquando é pressionado, o que aciona a reconstrução doValueListenableBuilder, atualizando o valor exibido na tela.
O ValueNotifier é útil para atualizar widgets quando ocorrem mudanças em um determinado valor, permitindo uma atualização rápida e eficiente da interface do usuário sempre que o valor notificado é modificado. Ele pode ser usado em muitos cenários, desde o gerenciamento de estado simples até o controle de valores mais complexos em uma aplicação Flutter.