Android原理揭秘之NavigationBar、StatusBar
来源:互联网 发布:淘宝卖家电话隐藏 编辑:程序博客网 时间:2024/06/01 18:32
前言
本人在集成weex时偶然遇到了问题,在魅族手机与华为手机上面UI显示存在问题,部分android手机可以,究其根本原因是因为有可恨的NavigationBar在其中作祟,这让我尴尬至极喽,必须将这种可恨的BUG扼杀掉~
介绍
StatusBar : 顶部状态栏
NavigationBar:底部导航栏,底部的虚拟按键;
NavigationBar相关操作
一、判断是否存在
public static boolean checkDeviceHasNavigationBar(Context context) { boolean hasNavigationBar = false; Resources rs = context.getResources(); int id = rs.getIdentifier("config_showNavigationBar", "bool", "android"); if (id > 0) { hasNavigationBar = rs.getBoolean(id); } try { Class systemPropertiesClass = Class.forName("android.os.SystemProperties"); Method m = systemPropertiesClass.getMethod("get", String.class); String navBarOverride = (String) m.invoke(systemPropertiesClass, "qemu.hw.mainkeys"); if ("1".equals(navBarOverride)) { hasNavigationBar = false; } else if ("0".equals(navBarOverride)) { hasNavigationBar = true; } } catch (Exception e) { } return hasNavigationBar;}
二、关闭NavigationBar
注:
虚拟按键从3.0版本以后才出现,可以换个思路,做版本判断,3.0之后在需要全屏的页面直接调隐藏虚拟键API,让系统去处理就好了。
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
三、获取底部 navigation bar 高度
private int getNavigationBarHeight() { Resources resources = mActivity.getResources(); int resourceId = resources.getIdentifier("navigation_bar_height","dimen", "android"); int height = resources.getDimensionPixelSize(resourceId); Log.v("TAG", "Navi height:" + height); return height;}
StatusBar 操作
获取StatusBar 高度
private int getStatusBarHeight() { Resources resources = mActivity.getResources(); int resourceId = resources.getIdentifier("status_bar_height", "dimen","android"); int height = resources.getDimensionPixelSize(resourceId); Log.v("TAG", "Status height:" + height); return height;}
4 0
- Android原理揭秘之NavigationBar、StatusBar
- android StatusBar和NavigationBar分析
- Android获取statusBar和navigationBar高度
- android开发 在隐藏statusbar及navigationbar
- 系统去掉 Android 4.4.2 的StatusBar和NavigationBar
- 系统去掉 Android 4.4.2 的StatusBar和NavigationBar
- 系统去掉 Android 4.4.2 的StatusBar和NavigationBar
- 系统去掉 Android 4.4.2 的StatusBar和NavigationBar
- Android简单的获取SystemBar,StatusBar,NavigationBar的高度
- Android 4.4.2 去掉系统StatusBar和NavigationBar
- 系统去掉 Android 4.4.2 的StatusBar和NavigationBar
- 系统去掉 Android 4.4.2 的StatusBar和NavigationBar
- 系统去掉 Android 4.4.2 的StatusBar和NavigationBar
- Android简单的获取SystemBar,StatusBar,NavigationBar的高度
- 系统去掉 Android 4.4.2 的StatusBar和NavigationBar
- 系统去掉 Android 4.4.2 的StatusBar和NavigationBar
- Android原理揭秘系列之动态墙纸
- Android原理揭秘系列之View、ViewGroup
- java学习day5
- 剑指offer35--数字在数组排序中出现的次数
- eclipse maven Tomcat7热部署
- CentOS 安装 Node.js
- swiper的基础使用(十一)
- Android原理揭秘之NavigationBar、StatusBar
- Microsoft.Practices.EnterpriseLibrary.Caching实现基于方法签名的数据集缓存
- Mac 配置多个git版本库
- 异形窗口小火箭代码
- 工作笔记
- 循环链表
- PHP中的Traits详解
- Cocos2d-x利用xxtea进行图片资源加密
- java 输入的三种方法