【问题标题】:Implementing pull Down to Referesh实现下拉刷新
【发布时间】:2019-02-05 16:47:20
【问题描述】:

您将如何在 Flutter 应用程序中实现下拉刷新,以使用 StreamBuilderFutureBuilder 从 Firestore 中的集合获取数据并将其显示在 ListView 中?

【问题讨论】:

标签: firebase dart flutter google-cloud-firestore


【解决方案1】:

我最终使用了这里的信息。 How to refresh or reload a flutter firestore streambuilder manually?

我添加了刷新指示器并让我的流从函数中获取其数据,请参见下面的代码。

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

       }

【讨论】:

  • 很好的实现,我问你如何处理来自_handleRefresh 方法的 Future 返回警告/错误?谢谢
猜你喜欢
  • 2014-01-29
  • 2018-05-14
  • 1970-01-01
  • 1970-01-01
  • 2021-02-01
  • 2011-09-29
  • 2011-09-17
  • 1970-01-01
  • 2015-11-28
相关资源
最近更新 更多