【问题标题】:Navigations count in flutter导航计入颤动
【发布时间】:2023-03-03 07:30:29
【问题描述】:

用户在应用中更改 3 页面后,我需要显示一个弹出窗口。

如何计算 Flutter 中的导航次数?

我使用 getx 来更改应用程序中的页面,并对 firebase 进行了观察者分析。

【问题讨论】:

    标签: flutter navigation flutter-getx


    【解决方案1】:

    您可以使用变量跟踪更改的页面。在 dart 编程语言中没有 global variable 这样的东西。所以这是一种在 dart 中实现全局变量的方法。

    步骤: 创建一个名为global.dart 的文件并声明一个变量

    例如:int pageCount = 0;

    现在将此文件导入为import 'package:..../global.dart';

    并在有Navogator.push 或触发页面更改的地方增加pageCount 变量。

    提示:如果您使用这种方式,那么在每个应用程序重新启动时,pageCount 变量会重置(初始化)为 0,并且在 pageCount=3 之后弹出窗口将再次显示给用户


    现在,如果您使用sharedPreferences 插件可以避免这种情况。将pageCount 存储为共享首选项。变量的更新应该按照上面解释的方式进行。

    然后在每个应用程序开始时读取此变量,如果变量 == 3,那么您可以跳过弹出窗口的显示。

    插件链接:https://pub.dev/packages/shared_preferences

    这篇文章很好地解释了如何在你的 Flutter 应用中实现共享偏好:https://medium.com/flutterdevs/using-sharedpreferences-in-flutter-251755f07127


    这是最繁琐的方式:

    现在,如果您不习惯使用共享首选项,您可以使用带有 dart:io 库的 path_provider 插件将变量存储在文本文件或 JSON 文件中。

    这里解释了关于读写文件的所有内容:https://flutter.dev/docs/cookbook/persistence/reading-writing-files

    如果您选择使用 JSON 文件来保存变量,那么您可以执行以下操作:

    • 打开一个名为config.jsonany_name.json 的文件
    • 使用 file.writeAsStringSync('{"pageCount":3}'),无论该实例的页面更改计数是多少。
    • 每次应用启动时读取此文件,检查页数是否为 3,然后实现您的逻辑等。

    【讨论】:

    • 是的,经过多次搜索,这是我唯一的方法。但我使用了 GetX,所以我创建了全局控制器并使用 get_storage 在其上处理数据。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-14
    • 1970-01-01
    • 2022-11-29
    • 2021-09-14
    • 2020-11-23
    相关资源
    最近更新 更多