每次推送新路线时,都会再次显示最后的 Flutter SnackBar
Posted
技术标签:
【中文标题】每次推送新路线时,都会再次显示最后的 Flutter SnackBar【英文标题】:Last Flutter SnackBar is shown again each time I push a new route 【发布时间】:2020-11-12 13:30:44 【问题描述】:我是 Flutter 开发的新手,我正在开发一个简单的应用程序,它显示 SnackBars 以通知用户与服务器通信的进度。 一切似乎都正常,但是在显示小吃店后,当我推送新路线时,最新的小吃店会重新出现,而我没有调用它。 一旦 SnackBar 显示并消失,是否必须做一些事情来清理并避免该 SnackBar 再次出现?
【问题讨论】:
你能贴一些代码吗? 你找到解决办法了吗? 【参考方案1】:你可以这样使用,
_scaffoldKey.currentState.removeCurrentSnackBar();**<--this close previous already open snackbar-->**
_scaffoldKey.currentState.showSnackBar( **<--this open new same time-->**
SnackBar(
content: Text('Processing Data'),
),
);
_scaffoldKey ;
Create key
Using key
【讨论】:
【参考方案2】:这个问题似乎与我使用来自两个不同库的 SnackBars 的事实有关,其中一个是 ez_flutter,另一个是 fluter material
【讨论】:
【参考方案3】:隐藏小吃栏:-
Scaffold.of(context).hideCurrentSnackBar();
或者如果你定义了全局键然后:-
_scaffoldKey.currentState.removeCurrentSnackBar();
【讨论】:
我已经阅读了这些可能性,但这里的问题是,当我导航到新屏幕时,小吃栏已经隐藏或不可见,它只是再次显示。您何时建议我执行此方法以避免在推送新路线时显示它? SnackBars 展示后不应该被丢弃吗?他们是吗?如果是这样,他们为什么在推新路线时再次出现?我已经尝试在推送新路线之前执行 Scaffold.of(context).hideCurrentSnackBar() 并且仍然没有效果。以上是关于每次推送新路线时,都会再次显示最后的 Flutter SnackBar的主要内容,如果未能解决你的问题,请参考以下文章
每次在 firebase 实时数据库中添加新孩子时使用 firebase 函数发送推送通知不起作用