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

Σε αυτό το παράδειγμα, το κείμενο στην οθόνη θα ενημερώνεται κάθε δευτερόλεπτο, δείχνοντας την τρέχουσα τιμή του μετρητή.