我目前有一个Flutter应用程序,该应用程序使用在后台运行的计时器来跟踪用户在该应用程序上花费的时间。用户可以设置在应用程序中花费时间的限制。计时器每分钟检查一次用户是否超过了时间限制。如果是这样,我想显示一个对话框或警报告诉用户。
问题在于计时器无法访问当前上下文,因此无法创建对话框。有办法解决这个问题吗?
答案 0 :(得分:2)
有一个软件包,您可以从业务层显示不需要BuildContext的对话框。叫做OneContext。
该程序包还可用于页面导航,覆盖和其他不需要BuildContext的东西。
看看:https://pub.dev/packages/one_context
使用示例:
// example dialog
OneContext().showDialog(
// barrierDismissible: false,
builder: (_) => AlertDialog(
title: new Text("The Title"),
content: new Text("The Body"),
)
);
// example snackBar
OneContext().showSnackBar(
builder: (_) => SnackBar(content: Text('My awesome snackBar!'))
);
答案 1 :(得分:1)
您可以通过创建自定义对话框管理器和定位器来实现。
您可以在此处阅读完整的教程:https://medium.com/flutter-community/manager-your-flutter-dialogs-with-a-dialog-manager-1e862529523a
答案 2 :(得分:0)
有一个名为Stacked_services
的软件包它提供:NavigationService
,DialogService
和SnackbarService
。