我想在不调用onCreate方法的情况下更改布局。我还在我的活动中定义了android:configChanges =“orientation | keyboardHidden”,它没有调用onCreate方法,但布局在横向模式下没有适当调整。
我目前的布局如下所示。
将更改方向更改为横向后,如下所示:
但在横向上我想要以下结果。
是否有任何自动相邻的财产?
我该怎么做?
答案 0 :(得分:4)
当视图从纵向更改为横向时,没有自动调整属性。
对于要以横向模式显示的图像
创建一个filename.xml文件并设计横向模式的布局。 提供与您用于活动的布局文件夹中的先前xml文件相同的文件名。
在res / name中创建文件夹作为layout-land,然后将该filename.xml文件保存在res / layout-land文件夹中
当方向从纵向更改为横向时,它将自动调用res / layout-land / filename.xml。
或者您也可以使用
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
//your code
} else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
//your code
}
}
答案 1 :(得分:1)
答案 2 :(得分:1)
您可以将android:configChanges="orientation"
添加到AndroidManifest.xml上的Activity标记。
试试吧。
答案 3 :(得分:0)
我假设您正在使用LinearLayout,因为您没有指定,但LinearLayout类中有一个名为setOrientation()的函数应该修复它。您必须在java文件(您可能已经完成)中创建布局实例,然后在窗口上创建orientationchange或resize事件侦听器。之后,它只是根据屏幕方向将方向更改为水平/垂直。
答案 4 :(得分:0)
你只在android manifest.it的活动标签中放了这个android:configChanges =“orientation | keyboardHidden”。
答案 5 :(得分:0)
把它放在你的清单中..
android:configChanges="orientation|keyboardHidden|screenSize|uiMode"
它解决了你和我的问题:D