使用Flutter的具有钉子屏幕的IAM实现应用程序必须输入才能访问该应用程序,每次您恢复该应用程序时都会显示钉子,因此iam使用(didChangeAppLifecycleState)会出现以下问题:如果某些东西干扰了该应用程序,例如whatsapp通知该图钉显示,这很酷,但是,如果收到两则消息,我会得到两个图钉代码,所以一个,一旦我得到27个图钉代码,我就必须输入它们以恢复该应用,这一点都不酷
所以这里的问题是,有什么方法或方法可以知道哪个屏幕位于堆栈顶部(导航器堆栈)?我的意思是现在对用户可见,所以我不必再显示图钉了,
预先感谢
答案 0 :(得分:1)
假设您的应用程序中有3个页面,分别是“ PageHome”,“ Page1”,“ PagePin”。然后:
创建一个文件'GlobalVariables.dart',在该文件内,创建一个类gv。
在gv类中,创建一个静态var:
static String strCurPage = 'PageHome';
在所有3页中导入此dart文件。
在导航到新页面之前,例如从“ PageHome”到“ PagePin”,设置:
gv.strCurPage = 'PagePin';
当应用从后台恢复时,仅当gv.strCurPage!='PagePin'时,导航至'PagePin'。