项目中需要对软键盘进行监听,控制它的显隐以及解决弹出时遮挡部分布局,本例子是在fragment和dialog使用,activity中未测试,不过从代码上看是可以使用的。
包含对软键盘进行监听,控制它的显隐以及解决弹出时遮挡部分布局的工具类如下:
public class SoftKeyBoardListener {
public static boolean softKeyFlag;//软键盘显隐标记.true为显示
public static void hideSoftKeyboard(Context context, View view) {
InputMethodManager mInputMethodManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
if (mInputMethodManager != null) {
mInputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0);
softKeyFlag = false;
}
}
public static void showSoftKeyboard(Context context, View view) {
InputMethodManager mInputMethodManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
if (mInputMethodManager != null) {
view.requestFocus();//要先设置焦点
// view.setVisibility();//可以写控制view的显隐
mInputMethodManager.showSoftInput(view, 0);
softKeyFlag = true;
}
}
/**
* 软键盘弹出布局向上滑动
*
* @param rootView 根布局
* @param bottomView 需要显示的最下方View,
*/
public static void layoutSlideListener(final View rootView, final View bottomView) {
rootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobal