隐藏底部工具栏只有在能获取到Window的地方才能实现,比如果activity,dialog等

在activity中隐藏底部工具栏的方法

隐藏底部工具栏可以在任意的界面对象中实现,dialog,悬浮窗,等等,只要有view对象就可以。

@Override

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// getWindow().setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION,WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);//底部状态栏位置消失,但是状态栏还是存在

// getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);//底部状态栏位置消失,但是状态栏还是存在

// getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);//底部状态栏位置消失,但是状态栏还是存在

//这种方法也行,但是要在Android 4.0以上才能生效

// getWindow().getDecorView().setSystemUiVisibility(

// View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION

// | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION

// | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);

//取消标题

requestWindowFeature(Window.FEATURE_NO_TITLE);

//取消状态栏

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

WindowManager.LayoutParams.FLAG_FULLSCREEN);

//隐藏虚拟按键(底部工具栏),并且全屏

if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower api

View v = this.getWindow().getDecorView();

v.setSystemUiVisibility(View.GONE);

} else if (Build.VERSION.SDK_INT >= 19) {

//for new api versions.

View decorView = getWindow().getDecorView();

int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION

| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_FULLSCREEN;

decorView.setSystemUiVisibility(uiOptions);

}

}

在oncreate隐藏这个是没有问题,但是当我们需要弹出dialog(也调用了隐藏工具栏的方法)的时候,底部工具栏就会重新出现然后消失,dialog消失的时候,底部工具栏会再次出现,activity隐藏底部工具栏的设置就会失效,那我们就需要在焦点变化的时候调用。

@Override

public void onWindowFocusChanged(boolean hasFocus) {

super.onWindowFocusChanged(hasFocus);

if (hasFocus) {

getWindow().getDecorView().setSystemUiVisibility(

View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION

| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION

| View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);

}

}

这样底部工具栏的设置就不会失效了。但是,在dialog出现和隐藏的瞬间,底部工具栏都会出现,很尴尬的问题,我慢慢再找解决方法吧,现在我是用悬浮窗代替一些不是全屏的dialog。

提一下

如果需要全屏的悬浮窗的时候,我们是不能隐藏工具栏占用的区域的,因为悬浮窗没有window对象,所以我现在把有问题的全屏悬浮窗都改成了dialog。

一知半解真可怕,只会看博客,不自己看源码钻研真是尴尬,哎,是我理解错了,在隐藏底部工具栏的时候是通过调用setSystemUiVisibility(int)这个方法,这个方法我一直以为是window的方法。。。。其实是view的方法,那这样的话,我们就可以使用一个界面里的任意一个view对象调用此方法了。也就不会出现所谓的悬浮窗不能隐藏底部工具栏的问题了。只会复制,不认真看代码是一个非常非常蠢得行为!

遗留问题:

dialog显隐的时候,底部工具栏会出现一瞬间的闪现。(可以使用悬浮窗带滴dialog,但是没有解决根本问题)

问题解决:

在activity中打开dialog时,底部状态栏会出现然后消失。这个问题的解决是在dialog显示之前将dialog的焦点失能,然后在显示之后清理失能焦点。

public void show(String type,String mes){

//失能焦点

getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,

WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);

super.show();

//清理失能焦点

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);

}

android工具栏设为底层,Android 隐藏底部工具栏相关推荐

  1. Rk系列主板 Android 隐藏底部工具栏虚拟按键

    ztlManager = new ZtlManager(mContext);ztlManager.setCloseSystemBar(); //开启隐藏工具栏ztlManager.setOpenSys ...

  2. IOS 导航栏返回后首页底部工具栏不见了

    基于UITabBarController的底部工具栏,隐藏底部工具栏的方法是: viewController.hidesBottomBarWhenPushed = true 这个方法只能在第二UIVi ...

  3. Android隐藏底部导航栏三大金刚按钮

    注:非uid.system项目不用看了....避免看完尝试不行,233333 定制化项目难免会用到这种需求,要就隐藏底部导航栏,让用户不能点击,底部导航栏的3大金刚分别就是我们看到的-返回键.home ...

  4. android 隐藏底部虚拟按键

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

  5. 【Android】隐藏底部虚拟按键

    Google的官方文档是: https://developer.android.com/training/system-ui/navigation.html#behind 示例代码 1 View de ...

  6. android隐藏底部栏,Android4.0平板开发之隐藏底部任务栏的方法

    本文实例讲述了Android4.0平板开发之隐藏底部任务栏的方法.分享给大家供大家参考,具体如下: getWindow().getDecorView().setSystemUiVisibility(V ...

  7. Android如何隐藏底部虚拟按键

    虚拟按键隐藏 相信大家在做屏幕适配时候,会对虚拟按键问题或多或少有一些疑问,接下来带给大家解决虚拟按键的方法. android隐藏底部虚拟键Navigation Bar实现全屏 安卓4.1之后为全虚拟 ...

  8. android华为隐藏底部虚拟按键,沉浸式状态栏/华为虚拟按键隐藏

    19版本以上Android可以自己实现沉浸式状态栏的设置 1.创建values-v21文件夹(为了匹配低版本) 在style文件中设置: 设置了这两个属性状态栏就能设置为透明的.但是需要注意的是,这个 ...

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

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

最新文章

  1. AI先驱、A*算法发明者Nils Nilsson去世
  2. 皮一皮:钢铁直女?鉴定了,钢的不能再钢!
  3. 【Linux学习】Linux系统管理2—作业调度
  4. 【Matlab 控制】矩阵、图像操作基础
  5. 小师妹学JavaIO之:File文件系统
  6. 前端高效开发必备的 js 库梳理
  7. windows下github的使用心得
  8. 工具WinRunner 及Bochs
  9. 累次积分怎么计算_把下列累次积分化为极坐标的累次积分,并计算其值 (3)
  10. 雷达空间角频率的理解
  11. 创建一个有向图,并输出各个节点的出度和入度(邻接矩阵存储)
  12. Qt Quick - ApplicationWindow
  13. 云流量成为数据中心的王者
  14. codevs奇怪的梦境(拓扑排序)
  15. 构建神经网络模型方法,神经网络建立数学模型
  16. 爬虫实战(1)————百度首页爬取
  17. java 根据日期计算当前周一和周日,及根据秒数计算天小时分钟秒数等相关日期
  18. OpenGL 问题汇总
  19. 怎么隐藏audio播放器的播放进度条,只保留播放按钮?
  20. 类与对象(中) 构造函数和析构函数

热门文章

  1. Sping Environment为Null的原因和解决方法
  2. wepy一些问题和解决方案
  3. 启动mysql5.7异常The server quit without updating PID file [FAILED]sql/data/***.pi根本解决方案
  4. 将JS对象转换为JSON字符串
  5. win10开机之后任务栏卡住了怎么办
  6. spring页面使用注解@RequestParam把请求参数封装到map中
  7. vue点击网页全屏_vue中实现点击变成全屏的多种方法
  8. easypoi list中的map导出_EasyPOI简单用例,简单有效
  9. python字符串的方法和列表的方法_python字符串,列表,字符串,元组,集合的一些方法...
  10. pythonsparkfilter_python中的map、filter、reduce函数