首页 > 解决方案 > 导航到另一个视图时如何删除 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 持续时间,因此在导航到另一个视图时我无法将其删除。如何在不更改持续时间的情况下将其删除。

谢谢

标签: flutterdartsnackbar

解决方案


飘飘然initState

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

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

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

你可以随时处理

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

推荐阅读