我试图为我的应用程序强制“纵向”模式,因为我的应用程序绝对不是为“横向”模式设计的。
在阅读了一些论坛后,我在我的清单文件中添加了这些行:
<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);
}
但是,还是不走运。
如果您希望在调试和发布版本中支持不同的方向,请这样写(参见https://developer.android.com/studio/build/gradle-tips#share-properties-with-the-manifest)。
在构建。Gradle的应用程序文件夹写:
android {
...
buildTypes {
debug {
applicationIdSuffix '.debug'
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
// Creates a placeholder property to use in the manifest.
manifestPlaceholders = [orientation: "fullSensor"]
}
release {
debuggable true
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
// Creates a placeholder property to use in the manifest.
manifestPlaceholders = [orientation: "portrait"]
}
}
}
然后在AndroidManifest中,你可以在任何活动中使用这个变量“orientation”:
<activity
android:name=".LoginActivity"
android:screenOrientation="${orientation}" />
你可以添加android:configChanges:
manifest占位符= [configChanges: "", orientation: "fullSensor"] in debug and manifest占位符= [configChanges: "keyboardHidden|orientation|screenSize", orientation: "portrait"] in release,
<activity
android:name=".LoginActivity"
android:configChanges="${configChanges}"
android:screenOrientation="${orientation}" />