React Native Android APP开发笔记 之 屏幕的竖屏锁定及翻转
warning:
这篇文章距离上次修改已过440天,其中的内容可能已经有所变动。
在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设备上始终保持竖屏,并且不会响应设备的物理旋转。
评论已关闭