V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
laravel
V2EX  ›  Flutter

flutter 一个页面需要横屏,其他页面需要竖屏,该怎么实现?

  •  
  •   laravel · 2019-07-12 10:57:21 +08:00 · 10940 次点击
    这是一个创建于 1969 天前的主题,其中的信息可能已经有所发展或是发生改变。
    试过的方法:
    1、在 initState 里设置竖屏,但是因为 initState 只执行一次,如果是从一个横屏页面跳回以前的页面,那就保持横屏了,不会执行 initState.

    2、在 widget 的 build 里执行,好像也不行
    8 条回复    2019-07-12 18:31:19 +08:00
    Vdream
        1
    Vdream  
       2019-07-12 11:01:13 +08:00
    虽然我没写过 flutter 但是应该可以监听返回吧
    laravel
        2
    laravel  
    OP
       2019-07-12 11:38:28 +08:00
    @Vdream 我这没返回按钮,只有个 Navigator.of(context).pop(); 不知道怎么监听这个事件
    laravel
        3
    laravel  
    OP
       2019-07-12 11:38:50 +08:00
    用 willpopscope 不行
    Vdream
        4
    Vdream  
       2019-07-12 12:13:44 +08:00
    @laravel H5 和 android 我都会监听返回 但是 flutter 不应该没监听啊
    hst001
        5
    hst001  
       2019-07-12 14:06:57 +08:00
    laravel
        6
    laravel  
    OP
       2019-07-12 14:46:29 +08:00
    我错了,其实写到哪里都可以,原因是我旋转屏幕的代码不起作用,我用的第三方的 orientation
    jedrek
        7
    jedrek  
       2019-07-12 16:24:37 +08:00
    MaterialApp 的构造函数里有个参数:navigatorObservers,实现 NavigatorObserver 的 didPush 和 didPop 处理
    laravel
        8
    laravel  
    OP
       2019-07-12 18:31:19 +08:00
    @jedrek 不错 感谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2650 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 04:01 · PVG 12:01 · LAX 20:01 · JFK 23:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.