在没有上下文的情况下创建 Flutter Alert/Dialog
Creating a Flutter Alert/Dialog Without Context
我目前有一个 Flutter 应用程序,它使用在后台运行的计时器跟踪用户在该应用程序上花费的时间。用户可以限制他们在应用程序中花费的时间。每分钟,计时器都会检查用户是否超过了他们的时间限制。如果是这样,我想显示一个对话框或警告告诉用户这一点。
问题是计时器无法访问当前上下文,因此无法创建我的对话。有办法解决这个问题吗?
您可以通过创建自定义对话框管理器和定位器来实现。
您可以在此处阅读完整教程:https://medium.com/flutter-community/manager-your-flutter-dialogs-with-a-dialog-manager-1e862529523a
有一个包可以让您在不需要业务层的 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!'))
);
有一个名为 Stacked_services
的软件包
它提供:NavigationService
、DialogService
和 SnackbarService
。
我目前有一个 Flutter 应用程序,它使用在后台运行的计时器跟踪用户在该应用程序上花费的时间。用户可以限制他们在应用程序中花费的时间。每分钟,计时器都会检查用户是否超过了他们的时间限制。如果是这样,我想显示一个对话框或警告告诉用户这一点。
问题是计时器无法访问当前上下文,因此无法创建我的对话。有办法解决这个问题吗?
您可以通过创建自定义对话框管理器和定位器来实现。
您可以在此处阅读完整教程:https://medium.com/flutter-community/manager-your-flutter-dialogs-with-a-dialog-manager-1e862529523a
有一个包可以让您在不需要业务层的 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!'))
);
有一个名为 Stacked_services
的软件包它提供:NavigationService
、DialogService
和 SnackbarService
。