将项目添加到列表FLUTTER后,ListView.builder不显示项目

时间:2020-02-05 19:00:47

标签: android listview flutter

我有一个ListView.builder,它从列表中读取所有项目并将其显示给用户。该构建器是RefreshIndicator的子级,该指示器在更新时会添加一个项目。但是,当我重建整个窗口小部件时,该项目仅显示在listView中。为什么会这样,如何更改它以便在更新后立即看到该项目?即使反复刷新,也不会出现新项目... 寻求帮助

class User {
static String id = 'id-001';
static List<Item> list = [];
}
class DatabaseService {
  final CollectionReference users = Firestore.instance.collection('users');
  Future fetchAndAddToUserList()async{
     var doc = await users.document(User.id).get();
     User.list.add(doc.data['list']);
  }
}
Future<Null> _refresh() async {
    await DatabaseService().fetchAndAddToUserList();
    setState(() {
      sortList();
    });
    return;
  }
RefreshIndicator(
          onRefresh: _refresh,
          key: _refreshIndicatorKey,
          child: Container(
            child: ListView.builder(
              itemBuilder: (ctx, index) {
                return ListTile(
                  item: User.list[index],
                );
              },
              itemCount: User.list.length,
            ),
          ),
        ),

1 个答案:

答案 0 :(得分:0)

FutureBuilder进行救援。

请参见https://flutter.dev/docs/cookbook/networking/fetch-data