Как справиться с загрузкой и завершением без использования futurebuilder в флаттере - PullRequest
0 голосов
/ 07 апреля 2020

Я не могу различить guish две разные ситуации по методу в примере. Как я могу обработать ситуации загрузки и завершения?

//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 (), пока список не будет загружен, но если список пуст, я хочу показать «Нет Запись ".

Как обходится без использования futurebuilder?

1 Ответ

1 голос
/ 07 апреля 2020

вы можете обработать его значением null или 0

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

, но список void должен возвращать новый List (), когда они не нашли записей ..

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