【问题标题】:setRequestedOrientation for landscape loads portrait LayoutsetRequestedOrientation 用于横向加载纵向布局
【发布时间】:2021-06-01 19:17:31
【问题描述】:

我正在开发一个应用程序,该应用程序需要在智能手机中严格以纵向模式运行,而在平板电脑中严格以横向模式运行。我正在使用以下代码在我的登录活动的 onCreate 方法中手动设置方向:

 if (getResources().getBoolean(R.bool.portrait_only)) {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        } else {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
        }

在平板电脑中布尔值变为假的地方。但是方向变为横向;布局文件仍然是从“layout_large”文件夹而不是“layout_large_land”文件夹中挑选的。因此,我的观点看起来有些牵强。

我试过这个link

但这并没有帮助。!

感谢任何帮助。

提前致谢。

【问题讨论】:

    标签: android screen-orientation


    【解决方案1】:

    我遇到了同样的问题。确保您没有在 AndroidManifest 中为您的活动设置 android:configChanges="orientation"

    我猜测问题在于setRequestedOrientation 可能会触发方向配置更改,但是通过使用android:configChanges="orientation",此配置更改未由系统注册。

    或者,如果您想保留 Manifest 设置,则必须针对此特定配置更改实施您自己的游戏机制。

    它可能看起来像这样:

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        if(getResources().getBoolean(R.bool.portrait_only))
            recreate();
    }
    

    【讨论】:

      【解决方案2】:

      我在 Tab & mobile 上使用过这样的文件夹

      layout 文件夹用于移动设备,layout-sw720dp 用于标签。 720 dp 是宽度,它告诉 720+ dp 将使用该文件夹进行布局。

      【讨论】:

      • 感谢您的回复。它似乎对我不起作用。
      • 您能告诉我setContentView() 是什么,您的布局文件夹中的布局文件名是什么吗?适用于移动设备和标签
      【解决方案3】:

      在这个线程中迟到了,但在未来会有所帮助。在我的情况下,我通过调用以编程方式更改屏幕的方向

      setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

      setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

      取决于用户的操作。我还为纵向和横向创建了单独的布局,但每次将屏幕从纵向更改为横向时,它总是以横向加载纵向屏幕。

      AndroidManifest.xml,我设置了这个

       android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
      

      所以,要解决这个问题,需要从android:configChanges 中删除方向然后它才能工作。这是android文档Link提到的

      “orientation”值防止屏幕方向重新启动 变化。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多