好久没更新了,最近忙于项目,做朋友圈的时候遇到输入框输入字的时候,键盘出来,输入框上移,这个问题困惑了我很久,后来终于解决了,当然有很多解决方案,在这里说说我的解决方案:调用系统的InputMethodManager这个类,当输入框为空的时候,输入框可见,并且有焦点,然后调用InputMethodUtils.showInputMethod(mInputBox);这个方法。如果你想要点击输入框外部让输入框消失,下面是完整代码:
public void showInputBox() {
imm.toggleSoftInput(0, InputMethodManager.RESULT_SHOWN);
if (!TextUtils.isEmpty(draftStr)) {
mInputBox.setText(draftStr);
mInputBox.setSelection(draftStr.length());
}
mInputLayout.setVisibility(View.VISIBLE);
mInputBox.requestFocus();
InputMethodUtils.showInputMethod(mInputBox);
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (ev.getAction() == MotionEvent.ACTION_DOWN){
View view = mInputLayout;
if (SoftInputMethodUtil.isHideInput(view,ev)){
SoftInputMethodUtil.hideSoftInput(this,view.getWindowToken());
mInputLayout.setVisibility(View.GONE);
}
}
return super.dispatchTouchEvent(ev);
}