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();
}
},
);
}
}
Σε αυτό το παράδειγμα, το κείμενο στην οθόνη θα ενημερώνεται κάθε δευτερόλεπτο, δείχνοντας την τρέχουσα τιμή του μετρητή.