Junior — Middle
Podes dar um exemplo de uso do componente StreamBuilder para atualizar a interface em tempo real?
sobes.tech IA
Resposta da IA
O componente StreamBuilder no Flutter é usado para construir uma interface que é atualizada em tempo real à medida que chegam novos dados de um fluxo (Stream). Por exemplo, se tiveres um fluxo de números que emite um novo valor a cada segundo, o StreamBuilder permitirá atualizar automaticamente o widget com esse número.
Exemplo:
Stream<int> counter() async* {
int i = 0;
while (true) {
await Future.delayed(Duration(seconds: 1));
yield i++;
}
}
class CounterWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return StreamBuilder<int>(
stream: counter(),
builder: (context, snapshot) {
if (snapshot.hasData) {
return Text('Contador: \\${snapshot.data}');
} else {
return CircularProgressIndicator();
}
},
);
}
}
Neste exemplo, o texto no ecrã será atualizado a cada segundo, mostrando o valor atual do contador.