【发布时间】:2022-09-30 02:52:22
【问题描述】:
所以基本上我有一个简单的小部件,它使用 FutureBuilder 构建我的小部件,其中包含可以在数据库中修改的数据列表,这里是代码:
ListView(
scrollDirection: Axis.vertical,
shrinkWrap: true,
children: <Widget>[
Flexible(
child: FutureBuilder<List<Incoming>>(
future: UserApiService.getAllHelp(),
builder: (context, snapshot) {
if (snapshot.hasError) {
return Text(\'Error ${snapshot.error}\');
}
if (snapshot.hasData) {
streamController.sink.add(snapshot.data!.length);
return gridView(snapshot);
}
return circularPogress();
},
)),
],
);
gridView 方法只是一个进行设计的 Widget(代码如下)
gridView(AsyncSnapshot<List<Incoming>> snapshot) {
return Padding(
padding: const EdgeInsets.all(5.0),
child: Column(
children: snapshot.data!.map(
(incoming) {
return GestureDetector(
child: GridTile(
child: cardUI(incoming),
),
onTap: () {
goToProceed(context, incoming);
},
);
},
).toList(),
),
);
}
goToProceed 是另一种打开具有 2 个按钮的对话框的方法(代码如下)
goToProceed(BuildContext context, Incoming incoming){
Navigator.push(
context,
MaterialPageRoute(
fullscreenDialog: true,
builder: (BuildContext context) =>
HelperProceedIncom(incoming: incoming)
)
);
}
在包含 2 个按钮的第二个小部件中,其中一个按钮正在更新列表一项的数据,第二个按钮只是使用 Navigator.pop() 关闭对话框。
关闭对话框时,我希望刷新主小部件(包含 FutureBuilder 的小部件)并显示新数据。
我该怎么做,提前谢谢你。
标签: flutter dart widget navigator