flutter - 导航到另一个视图时如何删除 Snackbar
问题描述
@override
void initState() {
super.initState();
_showFlushbar();
}
_showFlushbar() async {
await Future.delayed(Duration(milliseconds: 500));
defaultFlushbar(
context: context,
message:
'Success',
padding: 50.0,
);
}
当我导航到屏幕时,它会按预期向我显示 Flushbar。但是由于它具有 Future.delayed 持续时间,因此在导航到另一个视图时我无法将其删除。如何在不更改持续时间的情况下将其删除。
谢谢
解决方案
飘飘然initState
在将此对象插入树时调用。框架将为它创建的每个 State 对象仅调用一次此方法。
因此,您_showFlushbar
只在创建对象时被调用一次。除非您在其他地方引用它,否则它应该只显示一次。
由于延迟,它会在创建小部件后显示
你可以随时处理
@override
void dispose() {
FlashHelper.dispose();
super.dispose();
}
推荐阅读
- c++ - 识别结构 C++ 中的唯一元素
- python - Python:在系列中寻找子字符串
- sql - 如何在 SQL for while 循环中获取动态值?
- python - 为什么使用sess.run(placeholder, feed_dict)时会返回占位符的张量描述?
- javascript - 在不被阻止的情况下获取 XML (CORB)
- python - 如何为 HTML 文件中的每一行构造一个字典
- python-3.x - 为什么这个休息不起作用?我应该得到 [0,1] 返回而不是 [0,1,1,0]
- java - 我在按钮上有一个 javafx.fxml.LoadException
- select - 使用 CQL 的 where 子句进行选择
- javascript - react-testing-library 为什么 toBeInTheDocument() 不是函数