zoukankan      html  css  js  c++  java
  • Android 软键盘的监听(监听高度,是否显示)

    Android官方本身没有提供一共好的方法来对软键盘进行监听,但我们实际应用时。非常多地方都须要针对软键盘来对UI进行一些优化。

    下面是整理出来的一个不错的方法。大家能够使用。

    public class SoftKeyboardUtil {
    	public static void observeSoftKeyboard(Activity activity, final OnSoftKeyboardChangeListener listener) {
    		final View decorView = activity.getWindow().getDecorView();
    		decorView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
                int previousKeyboardHeight = -1;
    			@Override
    			public void onGlobalLayout() {
    				Rect rect = new Rect();
    				decorView.getWindowVisibleDisplayFrame(rect);
    				int displayHeight = rect.bottom - rect.top;
    				int height = decorView.getHeight();
                    int keyboardHeight = height - displayHeight;
                    if (previousKeyboardHeight != keyboardHeight) {
                        boolean hide = (double) displayHeight / height > 0.8;
                        listener.onSoftKeyBoardChange(keyboardHeight, !hide);
                    }
    
                    previousKeyboardHeight = height;
    
    			}
    		});
    	}
    
    	public interface OnSoftKeyboardChangeListener {
    		void onSoftKeyBoardChange(int softKeybardHeight, boolean visible);
    	}
    }




  • 相关阅读:
    Go语言 0 前言
    SVM支持向量机的基本原理
    支持向量机通俗介绍
    线程句柄和线程ID的区别
    分布式事务一致性,事务补偿实战
    ResultSet is from UPDATE. No Data.
    linux 批量kill进程
    mysql数据表拷贝
    Maven assembly 打包
    JS 删除对象属性
  • 原文地址:https://www.cnblogs.com/brucemengbm/p/7261706.html
Copyright © 2011-2022 走看看