【问题标题】:Creating a Flutter Alert/Dialog Without Context创建没有上下文的 Flutter 警报/对话框
【发布时间】:2020-02-27 02:07:17
【问题描述】:

我目前有一个 Flutter 应用程序,它使用在后台运行的计时器来跟踪用户在应用程序上花费的时间。用户可以设置他们在应用程序中花费的时间限制。每分钟,计时器都会检查用户是否超过了他们的时间限制。如果是这样,我想显示一个对话框或警报告诉用户这一点。

问题是计时器无法访问当前上下文,因此无法创建我的对话框。有没有办法解决这个问题?

【问题讨论】:

    标签: flutter dialog android-context synchronous navigator


    【解决方案1】:

    有一个包可以让您在不需要来自业务层的 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!'))
    );
    

    【讨论】:

      【解决方案2】:

      您可以通过创建自定义对话框管理器和定位器来实现。

      你可以在这里阅读完整的教程:https://medium.com/flutter-community/manager-your-flutter-dialogs-with-a-dialog-manager-1e862529523a

      【讨论】:

        【解决方案3】:

        有一个包叫Stacked_services

        它提供:NavigationServiceDialogServiceSnackbarService

        【讨论】:

          猜你喜欢
          • 2022-06-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-10-01
          • 1970-01-01
          • 1970-01-01
          • 2020-06-30
          • 2021-01-17
          相关资源
          最近更新 更多