java 检测键盘的打开/隐藏事件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 检测键盘的打开/隐藏事件相关的知识,希望对你有一定的参考价值。
...
private View mDecorView;
private OnGlobalLayoutListener mOnGlobalLayoutListener;
private long mLastShowKeyboardTime = -1L;
...
public void onCreate(...) {
mOnGlobalLayoutListener = new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Rect rect = new Rect();
mDecorView.getWindowVisibleDisplayFrame(rect);
int displayHeight = rect.bottom - rect.top;
int height = mDecorView.getHeight();
boolean visible = (double) displayHeight / height < 0.8;
if (visible) {
if (mLastShowKeyboardTime == -1) {
mLastShowKeyboardTime = System.currentTimeMillis();
}
ToastUtil.shortTips("visible");
} else {
if (mLastShowKeyboardTime != -1) {
mLastShowKeyboardTime = -1;
ToastUtil.shortTips("gone");
}
}
}
};
mDecorView = mContext.getWindow().getDecorView();
mDecorView.getViewTreeObserver().addOnGlobalLayoutListener(mOnGlobalLayoutListener);
}
@Override
public void onDestroy() {
if (mDecorView != null && mOnGlobalLayoutListener != null) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
mDecorView.getViewTreeObserver().removeGlobalOnLayoutListener(mOnGlobalLayoutListener);
} else {
mDecorView.getViewTreeObserver().removeOnGlobalLayoutListener(mOnGlobalLayoutListener);
}
}
super.onDestroy();
}
以上是关于java 检测键盘的打开/隐藏事件的主要内容,如果未能解决你的问题,请参考以下文章
Android:检测打开的键盘,onApplyWindowListener 不起作用
键盘出现时隐藏元素
Android点击EditText文本框之外任何地方隐藏键盘的解决办法
在 Ajax 应用程序中提交表单时隐藏移动 Safari 键盘
颤振检测键盘隐藏动画的结束
如何使用JavaScript捕获iOS上的隐藏键盘事件