前言:

笔者最近做一个平板的项目需要彻底隐藏系统状态栏及底部虚拟导航栏从而达到全屏的效果,试了很多方案都不太好,有些虽然能达到类似效果,但会因为其他因素例如弹框,手上滑而失去效果。在大部分项目是够用的,但像我这种特殊情况,就得用特殊方法去解决了,首先小伙伴们得明确自己的需求,我这里使用的方法是让它永远不出现,即全屏,因为我做的是launcher定制项目,所以有类似需求伙伴,你们的福利来了。使用这些方法,有一个前提,那就是需要root权限,好了,下面我直接亮代码了。

一,隐藏SystemUI(即状态栏及底部虚拟导航栏)

    //隐藏SystemUIpublic static boolean hideNavigation(Context context){boolean ishide;try{String command;command = "LD_LIBRARY_PATH=/vendor/lib:/system/lib service call activity 42 s16 com.android.systemui";Process proc = Runtime.getRuntime().exec(new String[] { "su", "-c",command });proc.waitFor();ishide = true;}catch(Exception ex){Toast.makeText(context, ex.getMessage(),Toast.LENGTH_LONG).show();ishide = false;}return ishide;}

二,显示SystemUI

//显示SystemUIpublic static boolean showNavigation(){boolean isshow;try{String command;command = "LD_LIBRARY_PATH=/vendor/lib:/system/lib am startservice -n com.android.systemui/.SystemUIService";Process proc = Runtime.getRuntime().exec(new String[] { "su", "-c",command });proc.waitFor();isshow = true;}catch (Exception e){isshow = false;e.printStackTrace();}return isshow;}

三,普通方法(不需root适合大部分项目)

protected void hideBottomUIMenu() {int flags;int curApiVersion = android.os.Build.VERSION.SDK_INT;// This work only for android 4.4+if(curApiVersion >= Build.VERSION_CODES.KITKAT){// This work only for android 4.4+// hide navigation bar permanently in android activity// touch the screen, the navigation bar will not showflags = View.SYSTEM_UI_FLAG_FULLSCREEN| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION| View.SYSTEM_UI_FLAG_IMMERSIVE| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;}else{// touch the screen, the navigation bar will showflags = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION|View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;}// must be executed in main thread :)getWindow().getDecorView().setSystemUiVisibility(flags);}

Android隐藏底部虚拟导航栏及系统状态栏终极方案相关推荐

  1. Android进阶之路 - 顶部状态栏、底部虚拟导航栏相关操作

    快过年了,2018希望我们每个人都健康,开心,同时继续上进 ! 2020补充:基本包含了我几年在开发中用到的关于顶部状态栏和底部导航栏的绝大部分功能 ~ 顶部状态栏 状态栏是否可见 获取状态栏高度 隐 ...

  2. 华为底部虚拟导航栏挡住布局

    问题:在实现ViewPager+Fragment+侧滑栏的界面时,华为搭载Android5.0以上操作系统的手机出现底部虚拟导航栏挡住布局.如下图所示: 问题解决后: 尝试 在实现这个功能的时候,我发 ...

  3. 安卓开发——如何完美隐藏底部虚拟导航栏

    对于如何隐藏底部虚拟按键,google官方给的解决办法: View decorView = getWindow().getDecorView(); // Hide both the navigatio ...

  4. android自动隐藏虚拟键,Android 隐藏底部虚拟键的两种方法

    方法一  滑动屏幕 可重新显示出来 protected void hideBottomUIMenu() { //隐藏虚拟按键,并且全屏 if (Build.VERSION.SDK_INT > 1 ...

  5. 成品app直播源码,全屏并且去掉底部虚拟导航栏

    成品app直播源码,全屏并且去掉底部虚拟导航栏 @Overridepublic void onWindowFocusChanged(boolean hasFocus) {super.onWindowF ...

  6. Android隐藏底部虚拟按键并全屏

    Android隐藏底部虚拟按键并全屏 Java View decorView = getWindow().getDecorView();// Hide both the navigation bar ...

  7. android 窗口导航,Android全面屏虚拟导航栏适配

    手机正朝着全面屏的方向演进,与此同时也给开发者带来了很多适配上的新问题,虚拟导航栏就是其中一个.最近在糗百的项目中,就有相关的适配问题,我查阅了目前关于虚拟导航栏适配的相关文章,基本上在全面屏手机里都 ...

  8. android功能导航布局,Android全面屏虚拟导航栏适配

    手机正朝着全面屏的方向演进,与此同时也给开发者带来了很多适配上的新问题,虚拟导航栏就是其中一个.最近在糗百的项目中,就有相关的适配问题,我查阅了目前关于虚拟导航栏适配的相关文章,基本上在全面屏手机里都 ...

  9. android 隐藏底部虚拟按键

    隐藏底部虚拟按键,但是如果你在底部网上滑动还是显示的出来的, 我在项目中写在了BaseActivity里面,大致如下 ,我这用在贩卖机上面,手机上的app开发还真没用过, 下面测试可以使用,已经使用在 ...

最新文章

  1. html5边框有圆弧,CSS圆角有立体感的DIV边框
  2. Laravel3 学习笔记
  3. 凄怆与悲凉(灾区现场最新照片)
  4. linux 在不同终端之下的切换方式
  5. 分享一个好用的函数吧,将js中的对象转成url参数
  6. 16年蓝桥杯省赛-方格填数(dfs+回溯)
  7. 新手开车 驾驶小秘诀要牢记
  8. 【WPF】WPF中调用Winform
  9. Java工作笔记-使用IDEA开始我的第一个Spring项目
  10. 水力冲孔数值模拟前景_防喷器成形工艺的有限元数值模拟研究
  11. 磁盘的成组与分解技术
  12. 编译OpenJDK12:LINK : warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
  13. 计算机为什么不用三十二进制,32位进制导致2038年问题
  14. 计算机常用的英语单词及缩写,常见计算机英语缩写及单词
  15. Python3入门视频教程百度网盘
  16. NOI2022游记,未曾设想的道路
  17. 小水智能-智能楼宇智慧建筑3D可视化系统,实现对实时数据的整合处理
  18. win7连上WIFI但上不去网
  19. Flask 和 Django 的比较和选择
  20. 常州网站服务器_常州云主机

热门文章

  1. 【python】pandas
  2. wps或word中如何将两个字宽度名字批量改成三个字宽度名字
  3. YGG 公会进阶项目介绍
  4. ESXI及WorkStation安装群晖NAS
  5. 免费php空间带域名,freehostia免费250MB无广告PHP空间可绑域名
  6. 一个女孩自杀的过程[几米漫画]
  7. 谷歌AI要为你写诗!让诗意文字浮现在你自拍头像上
  8. 小角色游戏-RPG游戏
  9. 商用PC创新,还是联想站位高
  10. TWT - laravel 学习心得体会一