Sobes.tech
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.