【发布时间】:2021-03-02 16:56:11
【问题描述】:
如何以编程方式禁用整个 Android 应用程序的屏幕旋转?
【问题讨论】:
-
您可以在每项活动中都这样做吗?可能这个链接可以帮助你stackoverflow.com/questions/1512045/…
-
不,我的应用程序中有更多活动
标签: android orientation
如何以编程方式禁用整个 Android 应用程序的屏幕旋转?
【问题讨论】:
标签: android orientation
无论设备以哪种方式倾斜,都将其保持为纵向或横向? 您需要将此添加到要限制的活动中的清单中
android:screenOrientation="portrait" //Or landscape for horizontal.
如果您希望在活动之间有所不同,只需让您的清单看起来像这样。
<activity android:name=".Activity1"
android:screenOrientation="landscape">
</activity>
<activity android:name=".Activity2"
android:screenOrientation="portrait">
</activity>
<activity android:name=".Activity3"
android:screenOrientation="landscape">
</activity>
【讨论】:
programmatically!
为每个活动修复 android manifest 中的方向
<activity android:name=".SomeNewDesignActivity"
android:screenOrientation="portrait" ></activity>
【讨论】:
聚会太晚了!
无论如何,如果您想禁用旋转而不强制用户选择横向或纵向,您可以在清单中的每个活动中使用
android:screenOrientation="locked"
所以你的清单应该是这样的
<activity android:name=".Activity1"
android:screenOrientation="locked">
</activity>
<activity android:name=".Activity2"
android:screenOrientation="locked">
</activity>
<activity android:name=".Activity3"
android:screenOrientation="locked">
</activity>
因此应用将保持用户决定使用的当前方向。
可以通过编程方式获得相同的行为:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
【讨论】:
为整个应用程序进行纵向/横向屏幕方向的最佳方式 -
Add following lines in your app theme -
for making all activity portrait -
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:screenOrientation">portrait</item>
</style>
用于制作所有活动景观 -
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:screenOrientation">landscape</item>
</style>
【讨论】: