我正在使用ListView构建器,它从数据库中获取数据并将其显示在列表中。
Future<dynamic> data = Database.getItems();
child: FutureBuilder(
future: data,
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.data == null) {
return Center(
child: LoadingAnimationWidget.staggeredDotsWave(
color: Colors.blueAccent, size: 50));
} else {
return ListView.builder(
itemCount: snapshot.data.length,
itemBuilder: (BuildContext context, int index) {
print(snapshot.data[index]);
return ItemWidget(
onEditTap: () {
setState(() {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ItemEditPage(
user: user,
)),
);
data = Database.getItems();
});
},
onDeleteTap: () async {
await Database.delete(snapshot.data[index]["_id"]);
setState(() {
data = Database.getItems();
});
},
},
);
有没有可能当我按下一个项目的删除按钮时,它会等待该项目(显示任何加载文本或任何内容),然后刷新列表视图?
onDeleteTap: () async {
await Database.delete(snapshot.data[index]["_id"]);
// ANY KIND OF LOADING TEXT HERE, A PAUSE THEN CALL setState
setState(() {
data = Database.getItems();
});
},
看起来像这个
2条答案
按热度按时间fkaflof61#
首先在主类中定义新变量,如下所示:
然后将此变量添加到ItemWidget的
onDeleteTap
中,如下所示:然后将列表视图更改为:
这将显示你点击的特定项目的加载。
j2datikz2#
你可以使用这个技巧:通过弹出加载对话框
并使用它: