美文网首页
React Native 全屏应用

React Native 全屏应用

作者: 马六甲的笔记 | 来源:发表于2020-05-04 18:36 被阅读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 相关组件就是用这个来保证按钮在安全区域内。

    相关文章

      网友评论

          本文标题:React Native 全屏应用

          本文链接:https://www.haomeiwen.com/subject/nsvyghtx.html