任务完成后,在任何屏幕上显示小吃店

时间:2020-10-13 16:08:03

标签: flutter

我有一个任务将在后台运行(隔离),完成后,我想显示一个get_value(nested_dict, "level1.level2...leveln") 。但是,用户可能会导航到与启动任务的屏幕不同的屏幕。如何显示未绑定到任何特定屏幕的“应用程序级” Snackbar

编辑:我发现了这一点:How to show a SnackBar from async executions when no context is available?,它具有一些很好的信息,而选项1(页面支架中的显示错误)似乎正是我想要的,但是我需要通过我。我希望Flutter内置一些功能。

1 个答案:

答案 0 :(得分:0)

我会尝试在这里实现抽象的基础类,在其中实现“侦听器”,然后所有页面从而不是例如StatelessWidget。

与其覆盖普通的构建方法,不如覆盖新的特殊构建。

伪代码(此处为BlocListener):

abstract class MySnackbarShowingPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return BlocListener<SubjectBloc, SubjectState>(
      listener: (context, state) {
        // TODO: implement snackbar display
      },
      child: mySpecialBuild(context),
    );
  }

  Widget mySpecialBuild(BuildContext context);
}

class MySpecificPage extends MySnackbarShowingPage {
  @override
  Widget mySpecialBuild(BuildContext context) {
    // TODO: implement mySpecialBuild as your normal page does today
  }
}