android 检测是否有键盘
发布网友
发布时间:2024-10-09 00:37
我来回答
共2个回答
热心网友
时间:2024-12-11 20:17
Android 检测是否有键盘,主要根据根View的位置是不会变化的,假如发生了变化,那么就可能是键盘弹起了,所以我们通过判断他的位置变化去判断键盘是否弹起。如下代码进行检测:
final int heigh = getWindowManager().getDefaultDisplay().getHeight() /3;
root.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
@Override
public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
//弹起事件
if (bottom != 0 && oldBottom != 0 && oldBottom- bottom >heigh) {
if (mListView.getLastVisiblePosition() != mDateArrays.size() - 1) {
mListView.smoothScrollToPosition(mDateArrays.size() -1);
}
}
else if(oldBottom != 0 && bottom != 0 &&(bottom - oldBottom > keyHeight)){
Toast.makeText(MainActivity.this, "监听到软件盘关闭...", Toast.LENGTH_SHORT).show(); }
}
});
热心网友
时间:2024-12-11 20:18
// 虚拟键盘隐藏 判断view是否为空
View view = getActivity().getWindow().peekDecorView();
if (view != null) {
//隐藏虚拟键盘
InputMethodManager inputmanger = (InputMethodManager) getActivity()
.getSystemService(MainActivity.INPUT_METHOD_SERVICE);
inputmanger.hideSoftInputFromWindow(view.getWindowToken(),
0);
}