Android 开发中关于底部导航栏遮挡布局控件的解决方法
2019-03-01 17:36
1446 查看
[code]/** * 判断是否存在NavigationBar * @param context:上下文环境 * @return:返回是否存在(true/false) */ public 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; ToastUtil.ShowShort(SearchActivity.this,"不存在虚拟按键"); } else if ("0".equals(navBarOverride)) { //存在虚拟按键 hasNavigationBar = true; //手动设置控件的margin //linebutton是一个linearlayout,里面包含了两个Button LinearLayout.LayoutParams layout = (LinearLayout.LayoutParams) linbutton.getLayoutParams(); //setMargins:顺序是左、上、右、下 layout.setMargins(0,0,0,getNavigationBarHeight(this)+10); } } catch (Exception e) { e.printStackTrace(); } return hasNavigationBar; } /** * 测量底部导航栏的高度 * @param mActivity:上下文环境 * @return:返回测量出的底部导航栏高度 */ private int getNavigationBarHeight(Activity mActivity) { Resources resources = mActivity.getResources(); int resourceId = resources.getIdentifier("navigation_bar_height","dimen", "android"); int height = resources.getDimensionPixelSize(resourceId); return height; }
相关文章推荐
- android 关于底部控件遮挡上面list控件的解决办法
- Android虚拟导航栏遮挡底部的输入框的解决方法
- android 关于底部控件遮挡上面list控件的解决办法
- Android软键盘弹出时把布局顶上去,控件乱套解决方法
- Android开发输入法遮盖屏幕底部按钮(解决方法,亲测可用)
- 关于无法下载android开发工具的解决方法
- Android开发之解决软键盘把原来的布局给顶上去的方法
- 关于使用NotificationComat导致android2.3及以下版本无法显示自定义布局的解决方法.
- android开发 软键盘顶布局解决方法
- [置顶] android开发之edittext弹出输入框遮挡住文字。解决方法
- Android软键盘弹出时把布局顶上去,控件乱套解决方法
- android中布局文件中的控件通过findviewbyid无法关联的解决方法
- Android中布局文件滚动及控件置于底部和控件遮挡问题
- Android软键盘弹出时把布局顶上去,控件乱套解决方法
- android studio toolbar遮挡住下面控件内容的解决方法
- Android软键盘弹出时把布局控件顶上去的解决方法
- android开发之edittext弹出输入框遮挡住文字。解决方法
- Android开发中使用WebView控件显示找不到网页的解决方法
- Android开发中关于如何解决Fragment中弹出键盘会把底部菜单栏顶上去的问题以及返回键的监听问题
- android 解决输入法键盘遮挡布局内容方法