我希望我的Android应用程序只能在竖屏模式下运行。
我想让我的Android应用程序只在竖屏模式下运行
在清单文件中,为所有的活动设置以下属性:
<activity android:name=".YourActivity"
android:configChanges="orientation"
android:screenOrientation="portrait"/>
让我解释一下:
- 通过
android:configChanges="orientation"
,你告诉Android你将负责处理屏幕方向的改变。 - 通过
android:screenOrientation="portrait"
,你设置了默认的屏幕方向为竖屏模式。
我们能不能为应用程序中的所有活动设置一个“全局”的屏幕方向呢?看起来我们没有选择,只能将“portrait”属性复制/粘贴到每个活动中...
只需要设置android:screenOrientation="portrait"
,就可以实现这个效果。
你实际上可以创建一个基类PortraitActivity
,然后在onCreate方法中调用setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
,所有继承该基类的活动都不会旋转。
那么当不同的活动想要继承不同的Activity
子类时,比如一个活动继承自ListActivity
,而其他活动仅继承自Activity
,该怎么办呢?
是的,这是个好问题。但这并不是我的错误,这只是Java不支持多重继承:)
最好的做法是同时设置android:configChanges
吗?
将这个设置添加到应用程序的主题中怎么样?
请注意,在多窗口模式下,android:screenOrientation
会被忽略 developer.android.com/guide/topics/manifest/…
tools:ignore="LockedOrientationActivity"
- 将此设置添加到Manifest.xml中以禁用警告信息。
我想让我的Android应用程序只能在纵向模式下运行,该问题的原因是没有设置应用程序的屏幕方向。解决方法是在Android清单文件中为<activity>
元素添加属性android:screenOrientation="portrait"
。在Android Studio 3.6及以上版本,还可以使用android:screenOrientation="fullSensor"
或android:screenOrientation="unspecified"
。其中,fullSensor表示无论您是否关闭了旋转功能,它都会根据您移动手机来改变方向;unspecified表示如果您关闭了旋转功能,它将保持在当前方向,如果没有关闭,则会根据您移动手机来改变方向。