React Native Android APP开发笔记 之 屏幕的竖屏锁定及翻转
在React Native项目中,要锁定Android设备的屏幕为竖屏,并禁止屏幕翻转,你可以在AndroidManifest.xml
文件中对应的Activity
标签内添加相应的屏幕方向配置。
首先,你需要在AndroidManifest.xml
中的Activity
标签中添加android:screenOrientation
属性,并设置为portrait
,这代表屏幕会一直保持竖屏状态。
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize">
...
</activity>
其次,你可能还需要禁用重力传感器,这样即使设备物理旋转,屏幕也不会跟随旋转。你可以通过编写自定义的ReactActivityDelegate
来实现这一点。
创建一个新的ReactActivityDelegate
类:
package com.yourpackage; // 替换为你的包名
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import com.facebook.react.ReactActivity;
import com.facebook.react.ReactActivityDelegate;
public class FixedOrientationReactActivity extends ReactActivity {
@Override
protected ReactActivityDelegate createReactActivityDelegate() {
return new ReactActivityDelegate(this, getMainComponentName()) {
@Override
protected void onCreate(Bundle savedInstanceState) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
super.onCreate(savedInstanceState);
}
};
}
}
然后,在你的AndroidManifest.xml
中将ReactActivity
替换为上面创建的FixedOrientationReactActivity
:
<activity
android:name=".FixedOrientationReactActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize">
...
</activity>
这样,你的React Native应用就会在Android设备上始终保持竖屏,并且不会响应设备的物理旋转。
评论已关闭