导航到另一个视图时如何删除 Snackbar

Posted

技术标签:

【中文标题】导航到另一个视图时如何删除 Snackbar【英文标题】:How to remove Snackbar when navigating to another view 【发布时间】:2021-07-30 06:34:30 【问题描述】:
@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 持续时间,因此在导航到另一个视图时我无法将其删除。如何在不更改持续时间的情况下将其删除。

谢谢

【问题讨论】:

【参考方案1】:

在颤抖中initState

当此对象插入树时调用。框架将为它创建的每个 State 对象调用此方法一次。

因此,您的 _showFlushbar 仅在您创建对象时被调用一次。除非您在其他地方引用它,否则它应该只显示一次。

由于延迟,小部件创建后会稍后显示

你总是可以丢弃

@override
  void dispose() 
    FlashHelper.dispose();
    super.dispose();
  

【讨论】:

谢谢,我忘记了 dispose()。祝你好运!

以上是关于导航到另一个视图时如何删除 Snackbar的主要内容,如果未能解决你的问题,请参考以下文章

单击搜索栏时如何导航到另一个视图控制器

单击时如何使列表视图导航到另一个页面

如何在单击按钮时从一个视图控制器导航到另一个视图控制器?

如何在关闭屏幕时关闭打开的 SnackBar?

如何在ios中从一个视图导航到另一个视图?

如何从一个视图控制器导航到另一个视图控制器