Junior — Middle
Czy możesz podać przykład użycia komponentu StreamBuilder do aktualizacji interfejsu w czasie rzeczywistym?
sobes.tech AI
Odpowiedź od AI
Komponent StreamBuilder w Flutterze służy do tworzenia interfejsu, który jest aktualizowany w czasie rzeczywistym, gdy pojawiają się nowe dane z strumienia (Stream). Na przykład, jeśli masz strumień liczb, który co sekundę emituję nową wartość, StreamBuilder pozwoli automatycznie odświeżać widżet z tą liczbą.
Przykład:
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('Licznik: \\${snapshot.data}');
} else {
return CircularProgressIndicator();
}
},
);
}
}
W tym przykładzie tekst na ekranie będzie się aktualizować co sekundę, pokazując aktualną wartość licznika.