【发布时间】:2020-03-28 05:37:55
【问题描述】:
我有Dismissible 小部件列表,我想向左滑动以删除这些小部件。它们有一个参数confirmDismis,它采用Future<bool>。一旦你刷了一个项目,我想显示一个SnackBar,让你在几秒钟内撤消删除。为此,我有这个方法:
Future<bool> _confirmDismiss() {
var remove = true;
var duration = Duration(seconds: 5);
final snackbar = SnackBar(
duration: duration,
content: Text('This item was deleted'),
action: SnackBarAction(
label: 'Undo',
onPressed: () {
remove = false; //how to return false immediately?
},
),
);
_scaffoldKey.currentState.showSnackBar(snackbar);
return Future.delayed(duration,(){
return remove;
});
}
snackbar 显示 5 秒后消失并触发回调。
现在我想在您点击撤消按钮后立即退回该项目。现在您必须等待 5 秒才能返回。
我已经尝试过 timeout 和 Time() 以及许多其他的东西,但我似乎无法让它工作......有什么想法吗?
【问题讨论】: