软键盘遮挡PopupWindow 解决方法
1.Activity Android AndroidManifest.xml中添加
android:windowSoftInputMode="stateHidden|adjustResize"
2.PopupWindow 中设置
popupWindow.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED);
popupWindow.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
popupwindow 关闭软键盘不关闭解决方法
1.先写判断软键盘是否关闭方法
private boolean isSoftShowing() {
// 获取当前屏幕内容的高度
int screenHeight = getWindow().getDecorView().getHeight();
// 获取View可见区域的bottom
Rect rect = new Rect();
// DecorView即为activity的顶级view
getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
// 考虑到虚拟导航栏的情况(虚拟导航栏情况下:screenHeight = rect.bottom + 虚拟导航栏高度)
// 选取screenHeight*2/3进行判断
return screenHeight*2/3 > rect.bottom;
}
2.关闭软件盘
InputMethodManager inputMethodManager = (InputMethodManager)
context.getSystemService(Activity.INPUT_METHOD_SERVICE);
if(isSoftShowing()){
inputMethodManager.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
}
网友评论