Sobes.tech
Назад к вопросам
Junior — Middle
94

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

Ответ от нейросети

sobes.tech AI

Компонент StreamBuilder в Flutter используется для построения интерфейса, который обновляется в реальном времени при поступлении новых данных из потока (Stream). Например, если у вас есть поток чисел, который каждую секунду выдает новое значение, StreamBuilder позволит автоматически обновлять виджет с этим числом.

Пример:

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();
        }
      },
    );
  }
}

В этом примере текст на экране будет обновляться каждую секунду, показывая текущее значение счетчика.