Реализация раскрывающегося списка для восстановления - PullRequest
0 голосов
/ 05 февраля 2019

Как реализовать раскрывающийся список для обновления в приложении Flutter, которое получает данные из коллекции в Firestore, предпочтительно с использованием StreamBuilder или FutureBuilder, и отображает ее в ListView?

1 Ответ

0 голосов
/ 06 февраля 2019

В итоге я использовал информацию отсюда. Как обновить или перезагрузить флайтвер Firestore streambuilder вручную?

Я добавил индикатор Обновить и сделал так, чтобы мой поток получал свои данные из функции, см. Код ниже.

  var stream;

  @override
  void initState() {
     setState(() {
  stream = mouvesStream();
});

  super.initState();
 }

     Stream<QuerySnapshot> stream() {
      return Firestore.instance.collection(_locationState).snapshots();
     }

       @override
       Widget build(BuildContext context) {
    body: StreamBuilder(
        stream: stream,
        builder: (BuildContext context, AsyncSnapshot snapshot) {
          if (snapshot.hasError) {
            return Text(snapshot.error);
          }
          if (snapshot.connectionState == ConnectionState.active) {
            List aList = new List();
            aList.clear();
            for (DocumentSnapshot _doc in snapshot.data.documents) {
              Model _add = new Model.from(_doc);
              aList.add(_add);
            }
            return TabBarView(
              children: <Widget>[
                RefreshIndicator(
                  onRefresh: _handleRefresh,
                  child: ListView.builder(
                    itemCount: aList.length,
                    itemBuilder: (context, index) {
                      return Card(aList[index]);
                    },
                  ),
                ),
                Icon(Icons.directions_transit),
              ],
            );
          } else {
            return Container(
                child: Center(child: CircularProgressIndicator()));
          }
        })));

       }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...