Sobes.tech
Junior — Middle

Можеш ли да дадеш пример за използването на компонента StreamBuilder за актуализиране на интерфейса в реално време?

sobes.tech AI

Отговор от AI

Компонентът StreamBuilder във Flutter се използва за създаване на интерфейс, който се актуализира в реално време при получаване на нови данни от поток (Stream). Например, ако имате поток от числа, който всяка секунда излъчва нова стойност, StreamBuilder ще позволи автоматичното обновяване на widget с това число.

Пример:

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

В този пример текстът на екрана ще се обновява всяка секунда, показвайки текущата стойност на брояча.