我想开发一个Android应用程序,用于完美的屏幕设计,安排纵向和横向模式。并且必须向用户提供屏幕定位功能。 如何在更改设备的屏幕方向时更改应用程序的两个xml文件?
答案 0 :(得分:2)
不要添加android:configChanges="orientation"
它会停止重新开展活动,最终不允许您适用vertical
和horizontal
布局。
答案 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>