已解决:EditText被底部固定栏挡住,使用AndroidBug5497Workaround出现兼容问题
import android.app.Activity;
import android.graphics.Rect;
import android.view.View;
import android.view.ViewTreeObserver;
import android.widget.FrameLayout;
/**
* Created by Administrator on 2016/3/3.
*/
public class AndroidBug5497Workaround {
// For more information, see https://code.google.com/p/android/issues/detail?id=5497
// To use this class, simply invoke assistActivity() on an Activity that already has its content view set.
public static void assistActivity (Activity activity) {
new AndroidBug5497Workaround(activity);
}
private View mChildOfContent;
private int usableHeightPrevious;
private FrameLayout.LayoutParams frameLayoutParams;
private AndroidBug5497Workaround(Activity activity) {
FrameLayout content = (FrameLayout) activity.findViewById(android.R.id.content);
mChildOfContent = content.getChildAt(0);
mChildOfContent.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
public void onGlobalLayout() {
possiblyResizeChildOfContent();
}
});
frameLayoutParams = (FrameLayout.LayoutParams) mChildOfContent.getLayoutParams();
}
private void possiblyResizeChildOfContent() {
int usableHeightNow = computeUsableHeight();
if (usableHeightNow != usableHeightPrevious) {
int usableHeightSansKeyboard = mChildOfContent.getRootView().getHeight();
int heightDifference = usableHeightSansKeyboard - usableHeightNow;
if (heightDifference > (usableHeightSansKeyboard/4)) {
// keyboard probably just became visible
frameLayoutParams.height = usableHeightSansKeyboard - heightDifference;
} else {
// keyboard probably just became hidden
frameLayoutParams.height = usableHeightNow;
}
mChildOfContent.requestLayout();
usableHeightPrevious = usableHeightNow;
}
}
private int computeUsableHeight() {
Rect r = new Rect();
mChildOfContent.getWindowVisibleDisplayFrame(r);
return (r.bottom - r.top);
}
}
已解决:EditText被底部固定栏挡住,使用AndroidBug5497Workaround出现兼容问题相关推荐
- 前端系列——与众不同的移动端底部固定栏 fixed、absolute 兼容 iOS 和 Android 方案
相信我,我分享的和你在其他博客上看到的终极方案是如此的与众不同! 做过移动端开发的同学,对底部DOM定位出现的各种奇葩情况已经深恶痛绝了吧,底部DOM设置不同的position,在Android和io ...
- 前端系列——与众不同的移动端底部固定栏 fixed、absolute 兼容 iOS 和 Android 方案...
相信我,我分享的和你在其他博客上看到的终极方案是如此的与众不同! 做过移动端开发的同学,对底部DOM定位出现的各种奇葩情况已经深恶痛绝了吧,底部DOM设置不同的position,在Android和io ...
- Android界面被底部导航栏挡住
资料 解决android 显示内容被底部导航栏遮挡的问题 AndroidBug5497Workaround Android手机底部NavigationBar挡住界面的解决方法 android 显示内容 ...
- android开发时华为手机底部导航栏挡住了应用布局
原因:使用安卓的BottomNavigationView控件开发底部导航栏同时使用了沉浸式状态栏导致华为手机的底部导航栏会盖住我应用的导航栏. 解决:先写一个工具类 import android.co ...
- node-sass版本不兼容问题(已解决)
node-sass版本不兼容问题(已解决) 估计很多小伙伴都遇到node-sass版本不兼容的问题,今天分享给大家如何定位问题,怎样去查找并兼容自己项目中的nod-sass版本! 文章目录 node- ...
- 微信小程序自定义底部导航栏遮挡页面内容(已解决)
今天也是努力写毕设的一天~ 这几天在实现旅行日记的笔记详情界面,先实现了自定义的底部导航栏,在这里我使用的是iView Weapp,具体的介绍我放在这里了~ 快速上手 iView Weapp 跟着里面 ...
- android 固定底部导航,如何设置android底部导航栏位置固定在android
请帮我设置底部导航栏位置固定在底部, ,因为我在输入editText字段时遇到问题,底部导航栏向上移动并覆盖其他领域如何设置android底部导航栏位置固定在android 代码: xmlns:and ...
- 华为底部虚拟导航栏挡住布局
问题:在实现ViewPager+Fragment+侧滑栏的界面时,华为搭载Android5.0以上操作系统的手机出现底部虚拟导航栏挡住布局.如下图所示: 问题解决后: 尝试 在实现这个功能的时候,我发 ...
- android导航栏自动弹出,解决android 显示内容被底部导航栏遮挡的问题
描述: 由于产品需求,要求含有EditText的界面全屏显示,最好的解决方式是使用AndroidBug5497Workaround.assistActivity(this) 的方式来解决,但是华为和魅 ...
最新文章
- 解读Python的命名空间
- MongoDB 删除数据库
- 与工作流关联的服务器发生意外错误
- PowerEdge M915 – 戴尔打出的又一记虚拟化重拳
- dup和dup2以及cat函数函数
- CSS实现自适应不同大小屏幕的背景大图
- ODPS主备集群双向数据复制导致主备中心网络打爆问题
- lib和dll的区别、生成以及使用详解
- 使用IntelliJ IDEA 配置Maven
- 第一个应在JavaScript数组的最后
- vSAN其实很简单-Quickstart是一件很炫的东西
- Advance Installer安装问题
- 基于IdentityServer4的单点登录——IdentityServer
- 小爱音箱mini系统故障怎么办_Win7蓝牙连接小爱音箱mini的详细教程
- 答题小程序 服务器,开源的基于云开发的在线答题小程序
- google服务框架 闪退_华为的谷歌服务打不开怎么办?
- 人脸识别活体检测技术
- 绘制可视化报表技巧,免费报表工具必备!
- ​UI自动化测试面试题及答案大全
- 前端开发工程师原生html进阶指南