Sobes.tech
Junior — Middle

Ar galite pateikti pavyzdį, kaip naudoti StreamBuilder komponentą realiu laiku atnaujinti sąsają?

sobes.tech AI

Atsakymas iš AI

„Flutter“ komponentas „StreamBuilder“ naudojamas kurti sąsają, kuri atnaujinama realiu laiku, kai gaunami nauji duomenys iš srauto (Stream). Pavyzdžiui, jei turite skaičių srautą, kuris kas sekundę išveda naują reikšmę, „StreamBuilder“ automatiškai atnaujins valdiklį su šiuo skaičiumi.

Pavyzdys:

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('Skaitiklis: \\${snapshot.data}');
        } else {
          return CircularProgressIndicator();
        }
      },
    );
  }
}

Šiame pavyzdyje teksto ekrane bus atnaujinama kas sekundę, rodant skaitiklio dabartinę reikšmę.