布局适配的问题解决
来源:互联网 发布:淘宝如何找人工客服 编辑:程序博客网 时间:2024/06/08 02:16
问题:布局由于虚拟按键导致导航栏顶上去的解决办法
首先写一个工具类:
public class AndroidWorkaround { public static void assistActivity(View content) { new AndroidWorkaround(content); } private View mChildOfContent; private int usableHeightPrevious; private ViewGroup.LayoutParams frameLayoutParams; private AndroidWorkaround(View content) { mChildOfContent = content; mChildOfContent.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { public void onGlobalLayout() { possiblyResizeChildOfContent(); } }); frameLayoutParams = mChildOfContent.getLayoutParams(); } private void possiblyResizeChildOfContent() { int usableHeightNow = computeUsableHeight(); if (usableHeightNow != usableHeightPrevious) { frameLayoutParams.height = usableHeightNow; mChildOfContent.requestLayout(); usableHeightPrevious = usableHeightNow; } } private int computeUsableHeight() { Rect r = new Rect(); mChildOfContent.getWindowVisibleDisplayFrame(r); return (r.bottom); } 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; }}然后在需要调用的activity的onCreate()方法中调用
if (AndroidWorkaround.checkDeviceHasNavigationBar(this)) { AndroidWorkaround.assistActivity(findViewById(android.R.id.content));}
阅读全文
0 0
- 布局适配的问题解决
- 安卓布局屏幕适配问题解决办法
- VS2005窗口布局无故出现混乱的问题解决方案
- xml做的layout 布局浏览不了问题解决。
- 自定义dialog显示详细资料以及出现的布局问题解决
- CoordinatorLayout中设置layout_behavior的布局无法垂直居中问题解决
- CollapsingToolbarLayout 布局报错问题解决
- 关于在Activty中对Adapter中的item布局改变引起的布局(数据)混乱的问题解决
- Android 适配问题解决
- ListView的item可能出现不同布局造成ListView的item数据混乱问题解决
- 关于九宫格的适配布局
- 整个布局的下拉刷新适配
- iOS 根据父视图布局的方法 以及实现 Scrollview 拉动 遮罩输入框问题解决
- android在根布局组件设置背景不显示的问题解决
- android软键盘把布局顶上去,在AndroidManiFest.xml设置windowSoftInputMode没有效果的问题解决
- 对android里布局文件当中的TextView对象设置事件监听,但是不响应问题解决
- 关于微信小程序<text>标签用flex布局不能居中的问题解决
- Android 无法识别布局文件问题解决方案
- SpringMVC Controller介绍及常用注解
- ARC 085
- ajax复习
- 使用开源 phpqrcode 生成二维码
- ZoomImageView实现手势操作图片的单击
- 布局适配的问题解决
- Mongo 排序,多个字段排序
- JSP页面之间传值的方法总结
- JavaScript中字符串的字符串方法
- oracle和mysql数据库的批量update在mybatis中的配置
- Dnsmasq原理总结
- Flume(NG)架构设计要点及配置实践
- oracle借助dual查询
- Greedy technique