【问题标题】:How to handle loading and completion without using futurebuilder in flutter如何在不使用futurebuilder的情况下处理加载和完成
【发布时间】:2020-04-08 04:56:45
【问题描述】:

我无法通过示例中的方法区分两种不同的情况。如何处理加载和完成情况?

//async method   

     void list() {
            databaseHelper.list().then((records) {
             setState(() {
              _recordList = records;
             });
            });
          }

_recordList.length > 0
 ? ListView.builder(
     itemCount: _recordList.length,
     itemBuilder: (context, index) {
     return {....}                          
   })
   : Center(
       child: Text("No Record"),
     ),

我想在列表加载之前显示 CircularProgressIndicator(),但如果列表为空,我想显示“No Record”。

不用futurebuilder怎么办?

【问题讨论】:

    标签: flutter async-await future


    【解决方案1】:

    你可以用 null 或 0 来处理它

    void list() {
      _recordList = null;
                databaseHelper.list().then((records) {
                 setState(() {
                  _recordList = records;
                 });
                });
              }
    

    但是空列表,当他们没有找到记录时必须返回一个新的List()..

    _recordList == null ? new new CircularProgressIndicator() : 
    _recordList.length > 0
     ? ListView.builder(
         itemCount: _recordList.length,
         itemBuilder: (context, index) {
         return {....}                          
       })
       : Center(
           child: Text("No Record"),
         ),
    

    【讨论】:

    • 太棒了! @流动。我试过这个,但它没有工作,因为我没有将列表设置为空。 _recordList = null;
    猜你喜欢
    • 2018-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多