Android操作系统无法识别方向更改

时间:2013-02-11 13:00:26

标签: android android-layout android-orientation

我在/ res目录中有以下文件夹,以支持不同的屏幕密度和方向。

/layout
/layout-land
/layout-small
/layout-small-land
/layout-large
/layout-large-land

在上面的XML中,所有不同的是组件之间的对齐。例如,在肖像中:

    <LinearLayout
        android:id="@+id/linearLayout5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/linearLayout3"
        android:layout_marginLeft="20dp"
        android:layout_toRightOf="@+id/linearLayout3" />

而在风景中,

    <LinearLayout
        android:id="@+id/linearLayout5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/linearLayout3"
        android:layout_marginLeft="60dp"        //widens the margin space
        android:layout_toRightOf="@+id/linearLayout3" />

但是,当方向改变时,正在使用与肖像相对应的XML。

这是AndroidManifest代码段。

 <activity
        android:name=".MyActivity"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize" />

我使用Android 2.2和3.7“屏幕在模拟器中测试了应用程序。有什么我错过的吗?

1 个答案:

答案 0 :(得分:2)

  

但是,当方向改变时,正在使用与肖像相对应的XML。

那是因为这是你告诉Android要做的事情,通过:

android:configChanges="keyboard|keyboardHidden|orientation|screenSize

删除该属性,Android将销毁并重新创建您的活动,并应用新的布局资源。

使用该属性, 作业以某种方式加载onConfigurationChanged()中的新布局资源。