视频全屏非全屏切换,状态栏动态显示隐藏兼容性解决

    列表中视频全屏/非全屏切换时,需要动态显示/隐藏状态栏

    View类提供了setSystemUiVisibility和getSystemUiVisibility方法,这两个方法实现对状态栏的动态显示或隐藏的操作,以及获取状态栏当前可见性(参考blog:https://blog.youkuaiyun.com/stevenhu_223/article/details/12428591)懒得多谢,直接引用了,大家有兴趣可以了解一下

    我一开始全屏使用的是以下两种切换方式:

        1、切换到全屏时:setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);//全屏隐藏状态栏

        2、切换到非全屏:setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);//非全屏,切换到普通状态

    这两段代码,如果是沉浸式状态栏,是没有任何问题的,但是我的首页不能使用沉浸式,而且状态栏设置了白底黑字样式(主要原因应该是这个)所以在使用这种方式的时候,居然出现了问题!!!!兼容性,真的非常脑袋疼,其它手机都没问题,魅族Flyme系统和华为荣耀手机全屏后状态栏依然显示,所以不得不在首页换种方式解决

    后来想到,setSystemUiVisibility其实都是View级别的,但是android中关于界面最底层其实是Window,所以想到用Window的setFlags方式,最终问题解决,解决代码如下:

        1、切换到全屏时:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
        2、切换到非全屏:
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    最终问题兼容性迎刃而解,在处理UI,尤其是系统状态栏、Theme等,兼容性是最大的问题,希望与小伙伴们共勉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值