【问题标题】:Last Flutter SnackBar is shown again each time I push a new route每次推送新路线时,都会再次显示最后的 Flutter SnackBar
【发布时间】:2020-11-12 13:30:44
【问题描述】:

我是 Flutter 开发的新手,我正在开发一个简单的应用程序,它显示 SnackBars 以通知用户与服务器通信的进度。 一切似乎都正常,但是在显示小吃店后,当我推送新路线时,最新的小吃店会重新出现,而我没有调用它。 一旦 SnackBar 显示并消失,是否必须做一些事情来清理并避免该 SnackBar 再次出现?

【问题讨论】:

  • 你能贴一些代码吗?
  • 你找到解决办法了吗?

标签: flutter 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() 并且仍然没有效果。
      猜你喜欢
      • 1970-01-01
      • 2023-04-10
      • 2016-04-05
      • 2021-03-07
      • 1970-01-01
      • 2012-03-03
      • 1970-01-01
      • 2012-11-14
      • 2017-12-27
      相关资源
      最近更新 更多