显示数据库中插入的数据时,FutureBuilder中出现UnimplementedError错误

时间:2020-08-06 00:46:24

标签: flutter dart widget

不幸的是,我试图创建一个Futurebuilder函数来调用和显示插入数据库中的所有数据,但出现此错误'UnimplementedError',对此建议我非常留意。

在我的完整代码中,用于实现试图解决错误“ UnimplementedError”的数据的显示方式是尝试在列表视图而不是Web视图中显示插入的内容。

body: Center(
  child: Expanded(
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
          FutureBuilder<ContactsDao>(
              future: _calltheStream(),
              builder: (BuildContext context,
                  AsyncSnapshot<ContactsDao> snapshot) {
                if (!snapshot.hasData ||
                    snapshot.connectionState == ConnectionState.none) {
                  return Container(
                    child: CircularProgressIndicator(),
                  );
                } else {
                  return StreamBuilder<List<ContactObject>>(
                      stream: snapshot.data.findallContactsById(),
                      builder: (context, snapshot) {
                        if (!snapshot.hasData ||
                            snapshot.connectionState ==
                                ConnectionState.none) {
                          return Container(
                            child: CircularProgressIndicator(),
                          );
                        } else {
                          if(widget.Contactlist.length != snapshot.data.length){
                            widget.Contactlist = snapshot.data;
                          }

                          if(snapshot.data.length == 0){
                            return Center(
                              child: Text('No Data Found'),
                            );
                          }
                          return Expanded(
                            child: ListView.builder(
                                scrollDirection: Axis.vertical,
                                itemCount: snapshot.data.length,
                                itemBuilder:
                                    (BuildContext context, int index) {
                                  return Card(
                                      child: ListTile(
                                        leading: Checkbox(
                                          value: widget.Contactlist[index].isSelect,
                                          onChanged: (bool value) {
                                            setState(() {
                                              widget.Contactlist[index].isSelect = value;
                                            });
                                          },
                                        ),
                                        trailing: GestureDetector(
                                          onTap: () {
                                            _selectedDetele(snapshot.data[index].id);
                                          },
                                          child: Icon(Icons.delete),
                                        ),
                                         title: Text('${snapshot.data[index].task}',maxLines: 1,),
                                         subtitle: Text('${snapshot.data[index].time}',style: TextStyle(fontSize: 10),),
                                      ));
                                }),
                          );
                        }
                      }); //DATA
                } //DATA
              }), // DATA
        ], // DATA
      ), // DATA
  ),//DATA
),

Future<ContactsDao> _calltheStream() async { //GET ALL DATA HERE
  ContactDatabase contactDatabase =  await widget.database;
  widget._contactsdao = contactDatabase.contactsDao;
  return contactDatabase.contactsDao;
}

0 个答案:

没有答案