类实现:

  public SoftKeyboardState(Activity activity) {    this.decorView = activity.findViewById(android.R.id.content);    initKeyboardListener();  }  private void initKeyboardListener() {    decorView.getViewTreeObserver().addOnGlobalLayoutListener(      new ViewTreeObserver.OnGlobalLayoutListener(){        private final Rect windowVisibleDisplayFrame = new Rect();        private int lastVisibleDecorViewHeight;        @Override        public void onGlobalLayout() {          decorView.getWindowVisibleDisplayFrame(windowVisibleDisplayFrame);          final int visibleDecorViewHeight = windowVisibleDisplayFrame.height();          Log.i(TAG,"  onGlobalLayout called " + visibleDecorViewHeight+ "  "+ lastVisibleDecorViewHeight);          if (lastVisibleDecorViewHeight != 0) {            if (lastVisibleDecorViewHeight - visibleDecorViewHeight > 200) {              if (listener != null)listener.onKeyboardStateChanged(true);            } else if (visibleDecorViewHeight - lastVisibleDecorViewHeight > 200) {              if (listener != null)listener.onKeyboardStateChanged(false);            }          }          lastVisibleDecorViewHeight = visibleDecorViewHeight;        }      });  }  public void setOnKeyboardStateChangedListener(OnKeyboardStateChangedListener listener) {    this.listener = listener;  }  public interface OnKeyboardStateChangedListener {     void onKeyboardStateChanged(boolean isShown);  }}

注意以上类只能监听普通的activity,如果theme中有如下设置,会不生效:

        true

更多相关文章

  1. android日期控件显示
  2. android 录音 播放
  3. android修改AlertDialog主题
  4. Android监听键盘上的确定键等
  5. android语音识别之科大讯飞语音API的使用
  6. android日期控件显示
  7. org.gradle.api.GradleException: Lint found fatal errors whil
  8. Android基础之Android的Activity周期
  9. Eclipse 开发 Android, Hello FormStuff(学习9)

随机推荐

  1. android 获取另一个apk的信息
  2. Android 同步请求导致系统崩溃android.os
  3. Android中Radio单选按钮操作
  4. Android Studio中使用Git报:Git Unauthor
  5. 玩懂Log,打开Android大门(sundy深入浅出)之
  6. Android之通过category跳转到指定的Activ
  7. Android对话框实例-注册对话框
  8. Android高手进阶——Android ANR解决案例
  9. Intent.FLAG_ACTIVITY_NEW_TASK和android
  10. 【android】Getting bitmap from a view