【问题标题】:how to Know which screen is on the top(active/mounted)如何知道哪个屏幕在顶部(活动/已安装)
【发布时间】:2019-08-01 09:16:34
【问题描述】:
必须输入带有 pin 屏幕的 Flutter 实现应用程序才能访问应用程序,每次恢复应用程序时都会显示 pin,因此 iam 使用 (didChangeAppLifecycleState) 此处的问题是,如果有诸如 whatsapp 通知之类的应用程序中断pin 显示,这很酷,但是如果有两条消息,我会得到两个 pin 码,所以一个,一旦我得到 27 个 pin 码,我必须输入它们才能恢复应用程序,这一点都不酷
所以这里的问题是,是否有任何方法或方法可以知道哪个屏幕位于堆栈顶部(导航器堆栈)?我的意思是现在对用户可见,所以我不必再次显示 pin,
提前致谢
【问题讨论】:
标签:
dart
flutter
navigator
【解决方案1】:
假设您的 App 中有 3 个页面,分别是 'PageHome'、'Page1'、'PagePin'。那么:
创建一个文件'GlobalVariables.dart',在这个文件中,创建一个类gv。
-
在 gv 类中,创建一个静态变量:
static String strCurPage = 'PageHome';
在所有 3 个页面中导入此 dart 文件。
-
在导航到新页面之前,例如从“PageHome”到“PagePin”,设置:
gv.strCurPage = 'PagePin';
当应用从后台恢复时,仅当 gv.strCurPage != 'PagePin' 时导航到 'PagePin'。