Android解决全屏下WebView中输入框被键盘遮挡
来源:互联网 发布:淘宝千牛包邮怎么设置 编辑:程序博客网 时间:2024/05/16 16:02
- /**
- * 解决webView键盘遮挡问题的类
- * Created by zqy on 2016/11/14.
- */
- public class KeyBoardListener {
- private Activity activity;
- // private Handler mhanHandler;
- private View mChildOfContent;
- private int usableHeightPrevious;
- private FrameLayout.LayoutParams frameLayoutParams;
- private static KeyBoardListener keyBoardListener;
- public static KeyBoardListener getInstance(Activity activity) {
- // if(keyBoardListener==null){
- keyBoardListener=new KeyBoardListener(activity);
- // }
- return keyBoardListener;
- }
- public KeyBoardListener(Activity activity) {
- super();
- // TODO Auto-generated constructor stub
- this.activity = activity;
- // this.mhanHandler = handler;
- }
- public void init() {
- 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 = usableHeightSansKeyboard;
- }
- mChildOfContent.requestLayout();
- usableHeightPrevious = usableHeightNow;
- }
- }
- private int computeUsableHeight() {
- Rect r = new Rect();
- mChildOfContent.getWindowVisibleDisplayFrame(r);
- return (r.bottom - r.top);
- }
- }
- 调用方式为:KeyBoardListener.getInstance(this).init();,即可解决全屏下,键盘遮挡问题。
阅读全文
0 0
- Android解决全屏下WebView中输入框被键盘遮挡
- Android解决全屏下WebView中输入框被键盘遮挡
- Android WebView 全屏下 输入框被键盘遮挡 问题解决
- 解决Android webview 全屏模式下键盘遮挡输入框问题
- Android 全屏情况下 webview中输入框被软件盘遮挡问题解决方案
- android键盘遮挡webview的输入框问题
- android输入框被键盘遮挡
- Android输入框被键盘遮挡
- android输入框被键盘遮挡
- android,键盘遮挡了输入框,完美解决android键盘遮挡问题
- 如何解决键盘遮挡输入框问题
- 解决键盘遮挡输入框问题
- iOS解决键盘遮挡输入框问题
- Android webview网页里输入框被输入法遮挡问题
- Android webview网页里输入框被输入法遮挡问题
- Android Webview 软键盘遮挡输入框
- 关于android输入框被键盘遮挡的问题
- Android输入框被键盘遮挡的问题
- 高性能Mysql笔记 (7)---查询缓存
- 使用eclipse在Maven本地仓中自动安装依赖jar包的目录结构
- Android中BaseAdapter的viewHolder工具类
- String转char类型
- 类加载与反射
- Android解决全屏下WebView中输入框被键盘遮挡
- iOS代理的使用
- c++单例模式和简单工厂
- IOS Swift3.1 删除UIViewController
- ACdream 1038 Alien Numbers (模拟)
- 超级简单的自定义SwitchButton二
- char * ,char,string与NSString转化(objec-c与c++混编基础)
- java第三方支付--支付宝
- 一个网页 icon 的创意