我有一个包含大约15个活动的应用程序。现在我知道一种防止活动旋转的方法,即重写 onConfigurationChanged() 方法并在xml中定义它。
由于我有大约15-20个活动需要覆盖,我认为覆盖每个活动并不是最好的做法。那么还有其他方法可以实现这个吗?
我有一个包含大约15个活动的应用程序。现在我知道一种防止活动旋转的方法,即重写 onConfigurationChanged() 方法并在xml中定义它。
由于我有大约15-20个活动需要覆盖,我认为覆盖每个活动并不是最好的做法。那么还有其他方法可以实现这个吗?
您可以在清单文件中添加以下内容:
android:screenOrientation="portrait"
对于您想要限制的每个活动。也适用于“横屏”。
activity
标签内,这个属性可以限制屏幕方向,非常实用。关于此属性还需要注意以下内容:
这是开发者网站提供的规格说明。因此,如果你将你的应用程序限制为仅在竖屏方向上运行,建议在manifest文件中的注意:当你声明了其中之一的横屏或竖屏值时,它被视为活动运行所需的方向的强制要求。因此,你所声明的值可以被Google Play等服务用来对设备进行筛选,以确保你的应用只会在支持所需屏幕方向的设备上出现。例如,如果你声明了“landscape”、“reverseLandscape”或“sensorLandscape”,那么你的应用程序只会在支持横屏方向的设备上出现。然而,你也应该明确地使用
<uses-feature>
元素声明你的应用程序需要横屏或竖屏方向。例如:<uses-feature android:name="android.hardware.screen.portrait"/>
。这仅是由Google Play(和其他支持它的服务)提供的筛选行为,平台本身并不控制当设备只支持特定方向时是否可以安装你的应用程序。
activity
标签之前使用以下标签:<uses-feature android:name="android.hardware.screen.portrait"/>
在您的具体示例中,@Stuart 提供的清单条目是最佳选择。
一般来说,为了避免在每个活动中重复编写代码,我会定义一个扩展 Android Activity
的自己的类,并在其 onCreate()
中执行所需的初始化。然后,我的每个活动都将扩展我的扩展,而不是直接扩展 Android 提供的 Activity。
在你的清单文件中添加以下内容:
<activity android:screenOrientation="portrait"></activity>