Android Landscape to portrait在方向改变时不加载屏幕

时间:2012-05-22 06:38:19

标签: android screen-orientation

我已为纵向和横向创建了大屏幕布局,并且我在两个布局中都有一个signin.xml,但是当我更改屏幕方向时,它不会加载横向xml而是改为横向模式但是已加载portrait xml。 我也提到了清单中的onconfig更改,请告诉我如何在方向更改时保存数据 请给我看一些例子。

以下是我的java代码

              public void onConfigurationChanged(Configuration newConfig) {
          super.onConfigurationChanged(newConfig);

               Display display = ((WindowManager)       getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
            int   orientation = display.getOrientation(); 
            boolean oAllow = false;
            switch(orientation) {
            case Configuration.ORIENTATION_PORTRAIT:
            if(!oAllow ) {
                    setRequestedOrientation    (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

            }
            break;
        case Configuration.ORIENTATION_LANDSCAPE:
            if(!oAllow) {
                    setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
            }
            break;
    }
      }

当我将风景更改为纵向到横向时,如何获取横向视图?

请问有什么建议吗?在此先感谢

2 个答案:

答案 0 :(得分:2)

你的肖像是xml文件夹布局还是布局肖像?如果它的布局肖像,请不要这样声明。只需创建默认的'layout'文件夹,当方向为纵向时,操作系统将获取xml。

接下来,在java中注释上面的代码,并在androidmanifest.xml中声明,android:configChanges =“keyboardHidden | orientation”在你的活动声明前面,并测试它是否有效。

答案 1 :(得分:1)

为什么要覆盖onconfigchanges?这可能会弄乱您的布局。当你有一个包含布局的layout和layout-land文件夹时,android能够处理布局更改。