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;@Overridepublic void onGlobalLayout() {Rect rect = new Rect();decorView.getWindowVisibleDisplayFrame(rect);int displayHeight = rect.bottom;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);}}




更多相关文章

  1. Android弹出软键盘布局是否上移问题
  2. Android(安卓)中使用Aspectj进行切面编程
  3. android 中edittext设置不弹出软键盘
  4. WebView 键盘遮挡输入框解决方案
  5. Android(安卓)软键盘盖住输入框的问题
  6. Android的TextView的双击事件监听
  7. Android-GridView的使用
  8. Android中使用WakeLock保证后台操作的顺利进行
  9. Android(安卓)App调用跳转百度地图、高德地图、腾讯地图进行目的

随机推荐

  1. Android(安卓)requires compiler complia
  2. Android(安卓)-- android activity 各种
  3. Android(安卓)WebView
  4. 我的Android进阶之旅------>Ubuntu下不能
  5. Android之getSystemService
  6. Android中通过getSystemService取得服务
  7. Android开发学习之设置Android壁纸的功能
  8. android中遇到问题总结
  9. android中的Handler(2)
  10. Android(安卓)音频管理器AudioManager类