如何在不使用 futurebuilder 的情况下处理加载和完成

How to handle loading and completion without using futurebuilder in flutter

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

//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怎么办?

你可以用值 null 或 0 来处理它

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

但是无效列表,必须 return 一个新的 List() 当他们找不到记录时..

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