如何防止安卓系统中所有活动屏幕旋转

4

我有一个包含大约15个活动的应用程序。现在我知道一种防止活动旋转的方法,即重写 onConfigurationChanged() 方法并在xml中定义它。

由于我有大约15-20个活动需要覆盖,我认为覆盖每个活动并不是最好的做法。那么还有其他方法可以实现这个吗?


你想修正方向吗?比如限制为纵向或横向?这是你想要做的吗? - Ghost
你可以参考我的回答。 - Ghost
但是您在清单中提到的每个活动都必须编写,不是吗?那么除此之外还有其他方法吗? - NullPointerException
我认为可能没有解决方法,但是这只是您活动标签中的一行代码。不冒犯,但是复制粘贴相同的行到其他活动标签中会有多无聊呢?相信我,在XML中执行相同操作比通过编码来摆脱困境要好得多。此外,与代码相比,这是轻量级的。因此,与解决方法相比,这具有优势(考虑到首先存在解决方法)。 - Ghost
4个回答

4
您可以在清单文件中添加以下内容:

您可以在清单文件中添加以下内容:

android:screenOrientation="portrait"

对于您想要限制的每个活动。也适用于“横屏”。


但是我的意思是你必须在每个<activity>标签中编写它。所以我在问是否有其他方法,比如编写类? - NullPointerException

4
请查看这个链接。在manifest文件中的activity标签内,这个属性可以限制屏幕方向,非常实用。关于此属性还需要注意以下内容:

注意:当你声明了其中之一的横屏或竖屏值时,它被视为活动运行所需的方向的强制要求。因此,你所声明的值可以被Google Play等服务用来对设备进行筛选,以确保你的应用只会在支持所需屏幕方向的设备上出现。例如,如果你声明了“landscape”、“reverseLandscape”或“sensorLandscape”,那么你的应用程序只会在支持横屏方向的设备上出现。然而,你也应该明确地使用<uses-feature>元素声明你的应用程序需要横屏或竖屏方向。例如:<uses-feature android:name="android.hardware.screen.portrait"/>。这仅是由Google Play(和其他支持它的服务)提供的筛选行为,平台本身并不控制当设备只支持特定方向时是否可以安装你的应用程序。

这是开发者网站提供的规格说明。因此,如果你将你的应用程序限制为仅在竖屏方向上运行,建议在manifest文件中的activity标签之前使用以下标签:
<uses-feature android:name="android.hardware.screen.portrait"/>

仅在清单文件中添加此行是否可以防止所有活动进入横屏模式,即使启用了屏幕旋转? - Jay Dangar

2

在您的具体示例中,@Stuart 提供的清单条目是最佳选择。

一般来说,为了避免在每个活动中重复编写代码,我会定义一个扩展 Android Activity 的自己的类,并在其 onCreate() 中执行所需的初始化。然后,我的每个活动都将扩展我的扩展,而不是直接扩展 Android 提供的 Activity。


0

在你的清单文件中添加以下内容:

  <activity  android:screenOrientation="portrait"></activity>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接