Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 如何知道哪个屏幕位于顶部(活动/安装)_Dart_Flutter_Navigator - Fatal编程技术网

Dart 如何知道哪个屏幕位于顶部(活动/安装)

Dart 如何知道哪个屏幕位于顶部(活动/安装),dart,flutter,navigator,Dart,Flutter,Navigator,iam使用Flatter实现应用程序,必须输入pin屏幕才能访问该应用程序,每次恢复应用程序时pin都会显示,因此iam使用()这里的问题是,如果有什么东西干扰了应用程序,例如whatsapp通知,pin会显示出来,这很酷,但是如果出现两条消息,我会收到两个pin码,因此一个,一旦我有了27个pin码,我就必须输入它们才能恢复应用程序,这一点都不酷 所以这里的问题是,有没有任何方法或方法可以知道哪个屏幕位于堆栈顶部(导航器堆栈)?我的意思是用户现在可以看到,所以我不必再次显示pin 提前感谢假设

iam使用Flatter实现应用程序,必须输入pin屏幕才能访问该应用程序,每次恢复应用程序时pin都会显示,因此iam使用()这里的问题是,如果有什么东西干扰了应用程序,例如whatsapp通知,pin会显示出来,这很酷,但是如果出现两条消息,我会收到两个pin码,因此一个,一旦我有了27个pin码,我就必须输入它们才能恢复应用程序,这一点都不酷

所以这里的问题是,有没有任何方法或方法可以知道哪个屏幕位于堆栈顶部(导航器堆栈)?我的意思是用户现在可以看到,所以我不必再次显示pin


提前感谢

假设您的应用程序中有3个页面,即“PageHome”、“Page1”、“PagePin”。然后:

  • 创建一个文件“GlobalVariables.dart”,在此文件中创建一个类gv

  • 在类gv内,创建一个静态变量:

    static String strCurPage = 'PageHome';
    
  • 在所有3页中导入此dart文件

  • 在导航到新页面(例如从“PageHome”到“PagePin”)之前,请设置:

    gv.strCurPage = 'PagePin';
    
  • 当应用程序从后台恢复时,仅当gv.strurpage!='PagePin’