在没有onCreate调用的情况下更改方向

时间:2010-10-29 06:58:18

标签: android

我想在不调用onCreate方法的情况下更改布局。我还在我的活动中定义了android:configChanges =“orientation | keyboardHidden”,它没有调用onCreate方法,但布局在横向模式下没有适当调整。

我目前的布局如下所示。

alt text

将更改方向更改为横向后,如下所示: alt text

但在横向上我想要以下结果。

alt text

是否有任何自动相邻的财产?

我该怎么做?

6 个答案:

答案 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