我有一个任务将在后台运行(隔离),完成后,我想显示一个get_value(nested_dict, "level1.level2...leveln")
。但是,用户可能会导航到与启动任务的屏幕不同的屏幕。如何显示未绑定到任何特定屏幕的“应用程序级” Snackbar
?
编辑:我发现了这一点:How to show a SnackBar from async executions when no context is available?,它具有一些很好的信息,而选项1(页面支架中的显示错误)似乎正是我想要的,但是我需要通过我。我希望Flutter内置一些功能。
答案 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
}
}