我试图为我的应用程序强制“纵向”模式,因为我的应用程序绝对不是为“横向”模式设计的。
在阅读了一些论坛后,我在我的清单文件中添加了这些行:
<application
android:debuggable="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:screenOrientation="portrait">
但它不能在我的设备(HTC Desire)上使用。它从“纵向”切换到“横向”,忽略清单文件中的行。
在更多的论坛阅读后,我试图在我的清单文件中添加以下内容:
<application
android:debuggable="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:configChanges="orientation"
android:screenOrientation="portrait">
这个函数在activity类中
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
但是,还是不走运。
我在androidmanifest。xml中有这一行
<activity
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
android:label="@string/app_name" android:name="Project Name"
android:theme="@android:style/Theme.Black.NoTitleBar">
我把它改成了(刚刚添加了android:screenOrientation="portrait")
<activity
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
android:label="@string/app_name" android:name="Project Name"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Black.NoTitleBar">
这为我解决了问题。
根据Android的文档,你也应该经常包括screenSize作为可能的配置更改。
android:configChanges="orientation|screenSize"
如果应用程序的目标是API级别13或更高(由
minSdkVersion和targetSdkVersion属性),那么您也应该
声明"screenSize"配置,因为当a
设备在纵向和横向方向之间切换。
此外,如果你都包括值keyboardHidden在你的例子,你不应该也考虑locale, mcc, fontScale,键盘和其他?