[英]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.