Android 应用程序方向(横向或纵向)如何锁定?
我尝试使用以下方法冻结方向:Android 应用程序方向(横向或纵向)如何锁定?,android,screen-orientation,Android,Screen Orientation,我尝试使用以下方法冻结方向: setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 尽管显示保持纵向,但仍会重新创建活动。有什么办法解决这个问题吗 如何锁定应用程序的方向,以便在方向更改时不会重新创建活动?首先,如果可以避免,请不要使用setRequestedOrientation()。在清单元素中使用android:screenOrientation属性 其次,您还需要在清单元素中使用android:config
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
尽管显示保持纵向,但仍会重新创建活动。有什么办法解决这个问题吗
如何锁定应用程序的方向,以便在方向更改时不会重新创建活动?首先,如果可以避免,请不要使用
setRequestedOrientation()
。在
清单元素中使用android:screenOrientation
属性
其次,您还需要在清单元素中使用android:configChanges=“keyboardHidden | orientation”,以防止销毁/重新创建循环。最好的解决方案是使用保存的实例。
如果您正在锁定屏幕方向,则表示您正在根据您设置的约束强制用户使用应用程序。因此,请始终使用onSaveInstanceState。阅读此链接:有关纵向方向的AndroidManifest.xml活动部分的更具体示例:
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:configChanges="keyboardHidden|orientation|screenSize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
其中,android:screenOrientation
设置初始方向,android:configChanges
在屏幕更改时无效触发相应生命周期方法的事件。尝试以下操作:
1.-在AndroidManifest.xml中设置所需的屏幕方向
android:screenOrientation="portrait|landscape"
应该是这样的:
<application
android:allowBackup="true"
android:icon="~icon path~"
android:label="~name~"
android:supportsRtl="true"
android:screenOrientation="portrait"
android:theme="@style/AppTheme">
</application>
protected void onCreate(Bundle savedInstanceState) {
super.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);}
应该是这样的:
<application
android:allowBackup="true"
android:icon="~icon path~"
android:label="~name~"
android:supportsRtl="true"
android:screenOrientation="portrait"
android:theme="@style/AppTheme">
</application>
protected void onCreate(Bundle savedInstanceState) {
super.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);}
现在,即使设备中的屏幕旋转已打开,屏幕也不会移动