Android实现系统状态栏的隐藏和显⽰功能
尤其视频类APP,需要实现切换到横屏后,隐藏系统状态栏,全屏显⽰,以实现看更⼤画⾯的视频。当切换回竖屏后,⼜显⽰状态栏。那么如何实现呢?
⽹上流传着很多种做法。⽐如:
1、在l⽂件中修改theme为android:theme=”@android:style/Theme.NoTitleBar.Fullscreen”
2、在setContentView⽅法前执⾏如下代码:
requestWindowFeature(Window.FEATURE_NO_TITLE)android layout布局
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
3、通过View的setSystemUiVisibility⽅法
4、通过如下代码实现状态栏的隐藏和显⽰:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) //隐藏状态栏
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) //显⽰状态栏
在我的项⽬中是要实现如下需求:在当前Activity中,切换到横屏后,不能销毁Activity再重新初始化,并且实现隐藏系统状态栏,全屏显⽰;当切换回竖屏后,⼜显⽰状态栏。另外,我不需要隐藏标题栏。
因此,⽅法1、2均不适合我。⽅法3,我采⽤过,调⽤setSystemUiVisibility⽅法,该⽅法传⼊的参数可以为:
1.View.SYSTEM_UI_FLAG_VISIBLE:显⽰状态栏,Activity不全屏显⽰(恢复到有状态的正常情况)。
2.View.INVISIBLE:隐藏状态栏,同时Activity会伸展全屏显⽰。
3.View.SYSTEM_UI_FLAG_FULLSCREEN:Activity全屏显⽰,且状态栏被隐藏覆盖掉。
4.View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN:Activity全屏显⽰,但状态栏不会被隐藏覆盖,状态栏依然可
见,Activity顶端布局部分会被状态遮住。
5.View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
6.View.SYSTEM_UI_LAYOUT_FLAGS:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
7.View.SYSTEM_UI_FLAG_HIDE_NAVIGATION:隐藏虚拟按键(导航栏)。有些⼿机会⽤虚拟按键来代替物理按键。
8.View.SYSTEM_UI_FLAG_LOW_PROFILE:状态栏显⽰处于低能显⽰状态(low profile模式),状态栏上⼀些图标显⽰会被隐藏。
这⾥我需要传⼊的是View.SYSTEM_UI_FLAG_FULLSCREEN,可是当我传⼊该参数后,结果是:只是状态栏消失了,但是位置还在。(测试⼿机:华为荣耀8 系统是基于Android 7.0的EMUI 5.0;三星galaxy s6 系统是Android 6.0)
最后,使⽤⽅法4,成功满⾜需求。
总结
以上所述是⼩编给⼤家介绍的Android实现系统状态栏的隐藏和显⽰功能,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。在此也⾮常感谢⼤家对⽹站的⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论