Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何随方向改变而改变布局?_Android_Orientation - Fatal编程技术网

Android 如何随方向改变而改变布局?

Android 如何随方向改变而改变布局?,android,orientation,Android,Orientation,我正在根据手机的方向改变布局,如下所示: 一旦创建…-> if (config.orientation == Configuration.ORIENTATION_LANDSCAPE) { setContentView(R.layout.layout1); }else{ setContentView(R.layout.layout2); } 这很好用——因为每次我改变手机的方向时,onCreate都会被调用

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

一旦创建…->

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

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

            setContentView(R.layout.layout2);
         }
这很好用——因为每次我改变手机的方向时,onCreate都会被调用——但我想改变布局,即使不记得onCreate——我该如何解决这个问题

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

编辑:

我还尝试了添加

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


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

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

            setContentView(R.layout.layout2);
         }


}

但在这里我得到了一个错误,当更改方向时,从清单中删除
android:configChanges=“orientation | screenSize”
。在
res/
中添加一个名为
layout land
的文件夹,并将要在横向视图中显示的布局放在那里。Android会选择正确的一个

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

您是否尝试过
此方法。setRequestedOrientation(ActivityInfo.screen\u ORIENTATION\u横向)
?我做到了,但在更改方向时重新加载onCreate也有问题,我不想重新加载onCreate。布局应在创建时更改,而不重新加载。我这样做了,但在更改方向时重新加载onCreate也有问题,我不想在创建时重新加载在清单中添加android:configChanges=“orientation”。我的配置是android:configChanges=“orientation | keyboardHidden | screenLayout”当轮换电话或其他问题时,仍然重新加载oncreate,当我这样做时,你说了什么,我必须在我的活动中写入什么?我是否只设置ContentView肖像?它是否对我的main.xml的命名起作用?我必须在setContentView中声明哪一个?或者你能像上面我的代码一样解释一下,我必须更改或删除哪一部分?