对于Android任务栏的隐藏问题确实纠结了很久,最近公司平板设备(Android 4.2)遇到这个需求,所以只能硬着头皮搞定了。

需求如下:

当App操作端(以下简称App)显示时,隐藏导航栏;

当App退出时显示导航栏;

尽量不改变原系统相应实现;

涉及模块,

1:PhoneWindowManager

2:SystemUI

3:App操作端

修改说明:

第一步:修改frameworks\base\policy\src\com\android\internal\policy\impl\PhoneWindowManager.java

在Android 4.2中提供原生隐藏导航栏的方式:

View.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | //隐藏导航栏

View.SYSTEM_UI_FLAG_FULLSCREEN //程序全屏

);

此种方式适合在用户播放视频时使用,但是这种方式在隐藏任务栏时系统会自动在所有窗口之上置顶显示一个透明窗口FakeWindow,并监听用户操作事件,所以当用户触摸屏幕会导致任务栏自动出现。

所以实现我们的需求就需要在隐藏任务栏时禁止FakeWindow显示。

修改如下:

frameworks\base\policy\src\com\android\internal\policy\impl\PhoneWindowManager.java Line2657~2660

修改为:

- 第二步 应用示例

App启动全屏:

protectedvoidonResume(){super.onResume();hiddenbar.setSystemUiVisibility(SYSTEM_UI_FLAG_HIDE_NAVIGATION|View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);}

App关闭恢复任务栏显示:





更多相关文章

  1. GitHub 标星 2.5K+!教你通过玩游戏的方式学习 VIM!
  2. Android(安卓)Matrix理论与使用详解
  3. Android定位入门(1)了解定位管理器--LocationManager 类
  4. 几种Android应用支付方式
  5. Android(安卓)开发之旅:view的几种布局方式及实践
  6. Android消息机制之Handler
  7. 浅析Android(安卓)MediaProvider之二
  8. Android(安卓)Studio 的四种打包方式
  9. Android实现可使用自定义透明Dialog样式的Activity完整实例

随机推荐

  1. [置顶] android下调试3G之自动拨号
  2. 【Android自定义View】 仿照腾讯漫画自定
  3. Android多屏幕适配及自适应解决方案
  4. Android(安卓)自定义验证码输入框(支持粘
  5. Fatal signal 11 (SIGSEGV), code 1, fau
  6. Kotlin在Android端的基本用法详解
  7. Android令“中国制造”焕发新生
  8. 【FastDev4Android框架开发】Android快速
  9. Android视图控件属性layout_weight的作用
  10. 关于Android工程从eclipse迁移至android