我尝试了很多组合,但是当我单击黑暗区域以关闭警报对话框时,软键盘将不会隐藏。只有“ toggleSoftInput”有效,但它是切换而不是隐藏。
现在我正在显示另一个警报对话框中的输入对话框(带有编辑文本),当onDismiss调用软键盘时,将其隐藏在原始警报对话框中,不愿隐藏自己。
小gif在这里
final EditText etNew = (EditText) inflater.inflate(R.layout.edittext, null);
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this).setView(etNew);
final AlertDialog dd = builder.create();
dd.show();
//imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
//imm.showSoftInput(etNew, InputMethodManager.SHOW_FORCED);
dd.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
dd.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
//imm.toggleSoftInput(0, 0); //only this works but this is 'TOGGLE',not hide.
dd.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
imm.hideSoftInputFromInputMethod(etNew.getWindowToken(), 0);
imm.hideSoftInputFromWindow(etNew.getApplicationWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
imm.hideSoftInputFromInputMethod(etNew.getApplicationWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
}});