尤其视频类APP,需要实现切换到横屏后,隐藏系统状态栏,全屏显示,以实现看更大画面的视频。当切换回竖屏后,又显示状态栏。那么如何实现呢?

网上流传着很多种做法。比如:

1、在AndroidManifest.xml文件中修改theme为android:theme=”@android:style/Theme.NoTitleBar.Fullscreen”

2、在setContentView方法前执行如下代码:

requestWindowFeature(Window.FEATURE_NO_TITLE)

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实现系统状态栏的隐藏和显示功能,希望对大家有所帮助

android h5状态栏消息,安卓实现系统状态栏的隐藏和显示相关推荐

  1. H5导航栏被IOS系统状态栏覆盖问题解决

    问题描述 在开发h5小程序时发现安卓系统中页面正常显示,但在iPhone中导航栏被系统状态栏覆盖. 解决方法 env()和constant(),是IOS11新增特性,Webkit的css函数,用于设定 ...

  2. android 版本分布 最新,安卓手机系统版本分布:Android 9.0占比达34%!

    原标题:安卓手机系统版本分布:Android 9.0占比达34%! 如今,就国内智能手机市场来说,华为.小米.OPPO.vivo等智能手机厂商不仅在硬件配置上激烈较量,比如采用最新的处理器,再比如手机 ...

  3. vivo21a点击android版本,vivoX21适配安卓P系统

    许多小伙伴们应该都是知道最近即将推出的Android P系统吧,这个系统十分的强大,如果你使用的是vivoX21那么你就有福利了,你可以使用vivoX21 Android P升级这个系统.Androi ...

  4. android 获取蓝牙设备id_安卓蓝牙系统中如何获取蓝牙音乐的音频跟踪会话ID

    原标题:安卓蓝牙系统中如何获取蓝牙音乐的音频跟踪会话ID 蓝牙音乐AudioTrack Session ID的获取 当今这个音视频无处不在的时代,音频跟踪会话ID(AudioTrack Session ...

  5. android版本如何升级包,安卓手机系统怎么升级?安卓手机系统升级教程

    安卓手机系统怎么升级 随着系统的更新换代,相信不少网友对安卓系统的升级都很感兴趣,而这里指的一般都是通过刷机来升级,好像不刷就浑身不舒服一样.安卓系统升级可以在电脑上面下载官方的升级包,或者像小米系统 ...

  6. android inputmethodmanager 不自动弹出,Android中软键盘InputMethodManager的弹出和隐藏,以及显示和隐藏的监听...

    1.首先设置软键盘的弹出模式,设置在初始化View的前面 @Override protected void onCreate(Bundle savedInstanceState) { this.req ...

  7. android电量图标,安卓手机系统状态栏电量图标如何修改?

    看着状态栏的一层不便的电量图标是不是有想换一种的冲动呢? 首先要有re. 1.把system/framework里面的framework-res.apk复制出来,然后解压(解压用电脑里的winrar, ...

  8. android切换账户功能,安卓9系统开启多用户 android 9支持多用户切换吗?

    android 9支持多用户切换吗? 消息说是支持的呢 Android中的APP如何实现多帐号切换? 这个并不难,你可以同时在服务器的数据库中关联一个主键下的多个账户,每一个账户都有唯一的主键,用主键 ...

  9. html5调用原生android,h5调用IOS/安卓原生方法,原生调h5方法

    之前也总结过h5调用原生的方法,但是写的不全.像调完原生之后,原生往往会有返回值,或者根据返回值的不同回调h5的方法. 1.判断机型 getType() { var u = navigator.use ...

最新文章

  1. vue--卡片层叠 组件 开发小记
  2. 【 MATLAB 】数字信号处理中的几个常用序列产生的MATLAB代码
  3. python和c哪个好学-零基础学C好还是python?
  4. 强化学习:Policy-based方法Part2
  5. Summary Day30
  6. Zabbix监控指定端口的步骤
  7. 关于多画面窗口切换的刷新重绘问题
  8. java实现线性表的案例_数据结构—线性表(LinearList)的原理以及Java实现案例
  9. 免费的NBA比赛结果接口
  10. C/C++编程:仿函数
  11. AM调制解调的Matlab和Simulink实现
  12. 「360企业安全云」上线,免费护航中小微企业数字化建设
  13. 售前技能——寻找客户
  14. linaCharts开发笔记:Three.js导入obj和使用中文
  15. CCF的基于UEBA的用户上网异常行为分析baseline(线上0.9263)
  16. 在IDEA里gradle配置和使用
  17. OpenCV提取图像中的垂直线(或者水平线)
  18. 剪切音频matlab_Matlab 按时间段切割音频
  19. QML 自适应布局 关键
  20. 微软workflow foundation介绍

热门文章

  1. 时玉:微生物地理分布的分析方法与技术
  2. 2020滑铁卢大学计算机科学学费,加拿大大学国际生学费上涨 滑铁卢大学学费上涨62%...
  3. R语言ggplot2可视化将X轴置于ggplot2图表顶部实战
  4. R语言构建仿真列联表并进行卡方检验(chisq.test):检验两个分类变量是否独立、输出期望的列联表
  5. R语言生存分析COX回归分析实战:放疗是否会延长胰脏癌症患者的生存时间
  6. 机器学习特征工程之连续变量离散化:等频分箱
  7. 为什么需要权重初始化(weight initialization)?常见的权重初始化方式有哪些?启发式权重初始化的好处?
  8. The Pediatric Cancer Genome Project   儿童癌症基因组计划
  9. 数字图像处理中常用图像分割算法有哪些?
  10. 使用early stopping解决神经网络过拟合问题