android工具栏设为底层,Android 隐藏底部工具栏
隐藏底部工具栏只有在能获取到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 隐藏底部工具栏相关推荐
- Rk系列主板 Android 隐藏底部工具栏虚拟按键
ztlManager = new ZtlManager(mContext);ztlManager.setCloseSystemBar(); //开启隐藏工具栏ztlManager.setOpenSys ...
- IOS 导航栏返回后首页底部工具栏不见了
基于UITabBarController的底部工具栏,隐藏底部工具栏的方法是: viewController.hidesBottomBarWhenPushed = true 这个方法只能在第二UIVi ...
- Android隐藏底部导航栏三大金刚按钮
注:非uid.system项目不用看了....避免看完尝试不行,233333 定制化项目难免会用到这种需求,要就隐藏底部导航栏,让用户不能点击,底部导航栏的3大金刚分别就是我们看到的-返回键.home ...
- android 隐藏底部虚拟按键
隐藏底部虚拟按键,但是如果你在底部网上滑动还是显示的出来的, 我在项目中写在了BaseActivity里面,大致如下 ,我这用在贩卖机上面,手机上的app开发还真没用过, 下面测试可以使用,已经使用在 ...
- 【Android】隐藏底部虚拟按键
Google的官方文档是: https://developer.android.com/training/system-ui/navigation.html#behind 示例代码 1 View de ...
- android隐藏底部栏,Android4.0平板开发之隐藏底部任务栏的方法
本文实例讲述了Android4.0平板开发之隐藏底部任务栏的方法.分享给大家供大家参考,具体如下: getWindow().getDecorView().setSystemUiVisibility(V ...
- Android如何隐藏底部虚拟按键
虚拟按键隐藏 相信大家在做屏幕适配时候,会对虚拟按键问题或多或少有一些疑问,接下来带给大家解决虚拟按键的方法. android隐藏底部虚拟键Navigation Bar实现全屏 安卓4.1之后为全虚拟 ...
- android华为隐藏底部虚拟按键,沉浸式状态栏/华为虚拟按键隐藏
19版本以上Android可以自己实现沉浸式状态栏的设置 1.创建values-v21文件夹(为了匹配低版本) 在style文件中设置: 设置了这两个属性状态栏就能设置为透明的.但是需要注意的是,这个 ...
- android自动隐藏虚拟键,Android 隐藏底部虚拟键的两种方法
方法一 滑动屏幕 可重新显示出来 protected void hideBottomUIMenu() { //隐藏虚拟按键,并且全屏 if (Build.VERSION.SDK_INT > 1 ...
最新文章
- AI先驱、A*算法发明者Nils Nilsson去世
- 皮一皮:钢铁直女?鉴定了,钢的不能再钢!
- 【Linux学习】Linux系统管理2—作业调度
- 【Matlab 控制】矩阵、图像操作基础
- 小师妹学JavaIO之:File文件系统
- 前端高效开发必备的 js 库梳理
- windows下github的使用心得
- 工具WinRunner 及Bochs
- 累次积分怎么计算_把下列累次积分化为极坐标的累次积分,并计算其值 (3)
- 雷达空间角频率的理解
- 创建一个有向图,并输出各个节点的出度和入度(邻接矩阵存储)
- Qt Quick - ApplicationWindow
- 云流量成为数据中心的王者
- codevs奇怪的梦境(拓扑排序)
- 构建神经网络模型方法,神经网络建立数学模型
- 爬虫实战(1)————百度首页爬取
- java 根据日期计算当前周一和周日,及根据秒数计算天小时分钟秒数等相关日期
- OpenGL 问题汇总
- 怎么隐藏audio播放器的播放进度条,只保留播放按钮?
- 类与对象(中) 构造函数和析构函数
热门文章
- Sping Environment为Null的原因和解决方法
- wepy一些问题和解决方案
- 启动mysql5.7异常The server quit without updating PID file [FAILED]sql/data/***.pi根本解决方案
- 将JS对象转换为JSON字符串
- win10开机之后任务栏卡住了怎么办
- spring页面使用注解@RequestParam把请求参数封装到map中
- vue点击网页全屏_vue中实现点击变成全屏的多种方法
- easypoi list中的map导出_EasyPOI简单用例,简单有效
- python字符串的方法和列表的方法_python字符串,列表,字符串,元组,集合的一些方法...
- pythonsparkfilter_python中的map、filter、reduce函数