簡體   English   中英

如何在 Flutter 中自動刷新 listView?

[英]how can I auto refresh listView in Flutter?

我實現了 listView 來顯示數據,我將數據保存到Sqflite Database ,從數據庫中獲取並顯示到列表視圖中。 保存數據后,我將表單字段頁面pop到 listView 頁面,但我的 ListView 未更新,我需要向后移動然后打開 listView 以查看新記錄。

  List<SubjectModel> list;
  int count = 0;
  SubjectModel subjectModel;

  @override
  Widget build(BuildContext context) {
    if (list == null) {
      list = List<SubjectModel>();
      updateListView();
    }
    return Scaffold(
      appBar: AppBar(
        title: Text('Subject'),
      ),
      floatingActionButton: FloatingActionButton(
          backgroundColor: Colors.purple,
          child: Icon(Icons.add),
          onPressed: () {
            Navigator.push(context,
                new MaterialPageRoute<void>(builder: (context) {
                  return new CreateTask(SubjectModel('', '', '', '', '', '', ''),'Add Subject');
                }));
          }),
      body: getSubListView()
    );
  }

  ListView getSubListView(){
    return ListView.builder(
        itemCount: count,
        itemBuilder: (BuildContext context, int position){
          return Card(
            color: Colors.white,
            elevation: 2.0,
            child: Column(
              children: <Widget>[
                ListTile(
                  title: Text(this.list[position].subject),
                  onLongPress: () => navigateToDetail(this.list[position],'Edit Subject'),
                )
              ],
            ),
          );
        }
    );
  }
}

必須有一個 setState() 被調用,只要你想重建任何東西(在這個例子中你的 listView )。

我會補充:

  @override
  void didChangeDependencies() {
    super.didChangeDependencies();
    setState(() {
      updateListView();
    });
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM