React Native 全屏应用

2020-05-04  本文已影响0人  马六甲的笔记

一、比如 视频、图片,全屏时候一般需要控制手机方向

社区支持: https://github.com/yamill/react-native-orientation

二、刘海屏支持

如视频,根据 刘海屏 文档,默认的情况为:竖屏支持应用使用刘海区域,横屏不支持。目前几乎所有的视屏应用都是在全屏时(此时为横屏),使用刘海区域的空间,参考上面文档和 这篇文章,在 RN 中开启横屏支持

public class MainActivity extends ReactActivity {

+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
+            WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();
+            layoutParams.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
+            getWindow().setAttributes(layoutParams);
+            getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
+            getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
+        }
+
+        super.onCreate(savedInstanceState);
+    }

可考虑封装为组件

三、刘海区域

在应用中,即使默认的竖屏,常需要感知刘海区域,以避免可交互内容延伸到刘海区域,可使用 react-native-safe-area-context 干这个活,react-navigation 的 Header 和 Bottom 相关组件就是用这个来保证按钮在安全区域内。

上一篇下一篇

猜你喜欢

热点阅读