如何改变方向改变布局?

时间:2014-12-15 11:17:24

标签: android orientation

我正在根据手机的方向改变布局,如下所示:

onCreate ... - >

 if (config.orientation == Configuration.ORIENTATION_LANDSCAPE) {

            setContentView(R.layout.layout1);
         }else{

            setContentView(R.layout.layout2);
         }

这很好用 - 因为每当我更改手机的方向时都会调用onCreate - 但我想改变布局,即使没有回忆onCreate - 我该如何解决?

我尝试使用android:configChanges =“orientation | screenSize” - 然后onCreate它不会在每次手机方向改变时重新加载,但在这里我无法控制布局......什么是我的问题的最佳解决方案?

编辑:

我还尝试添加

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


        if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {

            setContentView(R.layout.layout1);
         }else{

            setContentView(R.layout.layout2);
         }


}

但是这里我在更改方向时遇到错误

2 个答案:

答案 0 :(得分:0)

从清单中删除android:configChanges="orientation|screenSize"。在名为res/的{​​{1}}中添加一个文件夹,并在其中放置要以横向显示的布局。 Android会选择正确的

答案 1 :(得分:0)

你不需要那样做, 只需在res文件夹中创建一个名为" layout-land"并将您的XML放在那里。 当设备屏幕旋转时,它将自动从该文件夹中获取横向布局并进行渲染。