我的应用程序包含大约 15 个活动。现在我知道了一种防止活动旋转的方法,即覆盖onConfigurationChanged()方法并在 xml 中定义它。
因为我有大约 15-20 个活动覆盖它们,所以我认为这不是最佳实践。那么有没有其他方法可以做到这一点。
您可以在清单中添加它:
android:screenOrientation="portrait"
对于您要限制的每项活动。也适用于“风景”。
检查这个。activity
如果您想限制方向,清单文件标签内的这个属性可以产生奇迹。为了进一步参考,以下内容非常重要:
注意:当您声明横向或纵向值之一时,它被认为是对活动运行方向的硬性要求。因此,您声明的值允许按 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 是您具体示例中的最佳选择。
但总的来说,为了避免重复每个活动的代码,我会定义自己的类来扩展 AndroidActivity
并在其onCreate()
. 然后我的每个活动都会扩展我的扩展,而不是直接扩展 Android 提供的活动。
将此添加到您的清单中:
<activity android:screenOrientation="portrait"></activity>