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
Flutter 页面焦点事件上的颤振?_Flutter_Dart_State - Fatal编程技术网

Flutter 页面焦点事件上的颤振?

Flutter 页面焦点事件上的颤振?,flutter,dart,state,Flutter,Dart,State,initState()将始终调用页面的初始化,这很好 但是,如果我有两个屏幕呢 屏幕1导航到屏幕2。现在,当您在第2页(pop)上按back时,第1页上是否有一个事件知道我们又回来了 换言之,屏幕1能否在第2页的背面按下时触发事件 这对于设置屏幕2上更改的全局变量的状态非常有用,因此屏幕1可以相应地更新您可以等待Navigator.push(),它将在弹出路由时解析 在屏幕1中: wait Navigator.push(上下文,屏幕2); //当屏幕2弹出时做些什么 您还可以使用pop()将数

initState()将始终调用页面的初始化,这很好

但是,如果我有两个屏幕呢

屏幕1导航到屏幕2。现在,当您在第2页(pop)上按back时,第1页上是否有一个事件知道我们又回来了

换言之,屏幕1能否在第2页的背面按下时触发事件


这对于设置屏幕2上更改的全局变量的状态非常有用,因此屏幕1可以相应地更新

您可以
等待
Navigator.push()
,它将在弹出路由时解析

在屏幕1中:

wait Navigator.push(上下文,屏幕2);
//当屏幕2弹出时做些什么
您还可以使用
pop()
将数据从
Screen2
传递到
Screen1

在屏幕2中:

Navigator.pop(上下文、数据);
在屏幕1中:

final dataFromScreen2=wait Navigator.push(上下文,Screen2);

您可以
等待
Navigator.push()
,当弹出路线时,该问题将得到解决

在屏幕1中:

wait Navigator.push(上下文,屏幕2);
//当屏幕2弹出时做些什么
您还可以使用
pop()
将数据从
Screen2
传递到
Screen1

在屏幕2中:

Navigator.pop(上下文、数据);
在屏幕1中:

final dataFromScreen2=wait Navigator.push(上下文,Screen2);

根据您的具体需求,您可以通过3种不同的方式制作

  • popEvents
    (我的最爱):您可以使用第2页上的
    WillPopScope
    小部件来防止返回按钮退出页面
  • 仅侦听第2页(仅当您要检查第1页上的执行代码时)
    • page2:仅当您希望根据page2的结果在Page1上执行代码时才需要此选项
    • 第1页: 使用第2页发送的
  • 您希望侦听整个应用程序生命周期事件。这样,当用户返回到第1页时,您可以随时检查任务是否已正确执行。还是不
    • 初始绑定

        WidgetsFlutterBinding.ensureInitialized();
      
    • 在第一页中,将
      WidgetsBindingObserver
      mixin添加到页面中

        class Page1State extends State<Page1> with WidgetsBindingObserver
      

      根据您的具体需求,您可以通过3种不同的方式制作

    • popEvents
      (我的最爱):您可以使用第2页上的
      WillPopScope
      小部件来防止返回按钮退出页面
    • 仅侦听第2页(仅当您要检查第1页上的执行代码时)
      • page2:仅当您希望根据page2的结果在Page1上执行代码时才需要此选项
      • 第1页: 使用第2页发送的
    • 您希望侦听整个应用程序生命周期事件。这样,当用户返回到第1页时,您可以随时检查任务是否已正确执行。还是不
      • 初始绑定

          WidgetsFlutterBinding.ensureInitialized();
        
      • 在第一页中,将
        WidgetsBindingObserver
        mixin添加到页面中

          class Page1State extends State<Page1> with WidgetsBindingObserver
        

        这真的很有效。谢谢你帮我。这真的很有效。谢谢你帮助我。
          class Page1State extends State<Page1> with WidgetsBindingObserver
        
            @override 
            void didChangeAppLicycleState(AppLifecycleState state){
            if(state = AppLifecycleState.paused){
            //do whatever you want here
               }
            }