Android屏幕方向使用不同的xmls(切换/旋转屏幕横向和纵向)

时间:2014-01-17 04:28:30

标签: android android-layout android-orientation

我想开发一个Android应用程序,用于完美的屏幕设计,安排纵向和横向模式。并且必须向用户提供屏幕定位功能。 如何在更改设备的屏幕方向时更改应用程序的两个xml文件?

4 个答案:

答案 0 :(得分:2)

不要添加android:configChanges="orientation"它会停止重新开展活动,最终不允许您适用verticalhorizontal布局。

答案 1 :(得分:1)

在res文件夹下创建另一个名为 layout-Land 的布局文件夹。 将所有横向xml文件复制到具有相同名称的布局-Land文件夹。 重新检查所有纵向xml文件是否在布局文件夹中。 加 android:configChanges="orientation"到清单

 <activity
        android:name=".LoginActivity"
        android:configChanges="orientation"
        android:label="@string/app_name"
        android:windowSoftInputMode="stateVisible|adjustPan" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

cheerz

答案 2 :(得分:1)

只需制作另一个版面并将其放入layout-land文件夹即可。您的结构应如下所示:

res/
    layout/ 
        my_layout.xml #will be used in portrait
    layout-land/ 
        my_layout.xml #will be used in landscape

不要按照建议添加android:configChanges属性 - 正如@nitin所说,这将阻止您的Activity被重新创建,并且您将不得不做一些额外的工作来处理资源切换。创建Activity并创建布局(例如setContentView(R.layout.my_layout.xml))后,它将根据方向解析正确的布局资源。

答案 3 :(得分:-1)

在活动代码中的清单文件中添加此代码:

对于横向模式:

<activity android:name="MyActivity"
android:screenOrientation="landscape"
android:configChanges="keyboardHidden|orientation|screenSize">
</activity>

对于肖像模式:

<activity android:name="MyActivity"
android:screenOrientation="portrait"
android:configChanges="keyboardHidden|orientation|screenSize">
</activity>