【问题标题】:How to display popup after navigating back to previous screen in flutter?导航回到上一个屏幕后如何显示弹出窗口?
【发布时间】:2021-11-16 22:22:09
【问题描述】:

我有一个场景,我在屏幕 A 中有一个弹出窗口。它将从 initstate() 触发。单击弹出窗口内的按钮后,用户可以导航到屏幕 B。如果用户通过单击箭头返回按钮返回屏幕 1,我如何显示弹出窗口?

【问题讨论】:

  • 要获得更好的答案,请发布一些代码。您目前是如何打开屏幕的?
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: flutter flutter-navigation flutter-routes flutter-dialog


【解决方案1】:

您可以在.then() 的帮助下实现:https://api.flutter.dev/flutter/dart-async/Future/then.html

                         Navigator.of(context)
                             .push(CupertinoPageRoute<Screen1>(
                              builder: (context) => Screen2(
                                ))).then((value) {

                             //ShowPopUpMenu() <-- Your PopUpMenu.

                          });

【讨论】:

    【解决方案2】:

    在你的屏幕上添加一个布尔参数,当你想要弹出窗口时,给它一个 True:

    class PopScreen extends StatefulWidget {
      PopScreen (this.displayPopup);
      final bool displayPopup;
      @override
      _PopScreenState createState() => _PopScreenState();
    }
    
    class _PopScreenState extends State<PopScreen> {
      @override
      void initState() {
        super.initState();
        if(widget.displayPopup){
          // display your popup here
        }
      }
    }
    

    调用导航器:

    Navigator.pushNamed(context, '/yourscreen', arguments: true);
    

    【讨论】:

      猜你喜欢
      • 2020-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多