Sobes.tech
Junior — Middle

Tudsz példát mondani a StreamBuilder komponens használatára az interfész valós idejű frissítéséhez?

sobes.tech MI

Válasz az MI-től

A Flutterben a StreamBuilder komponens arra szolgál, hogy egy olyan felületet építsen, amely valós időben frissül, amikor új adatok érkeznek egy áramlatból (Stream). Például, ha van egy számláló adatfolyamod, amely másodpercenként új értéket ad ki, a StreamBuilder automatikusan frissíti a widgetet ezzel az értékkel.

Példa:

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

Ebben a példában a képernyőn lévő szöveg minden másodpercben frissül, és a számláló aktuális értékét mutatja.