获取系统软键盘manager:
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
根据当前状态来判断是否隐藏
if (imm.isActive()&&imm.isAcceptingText()) {
//view.hideSoftInputFromWindow(mRecordBtn.getWindowToken(),0);
imm.hideSoftInputFromWindow(mRecordBtn.getWindowToken(),0);//隐藏软键盘(强制)
}
状态切换:若显示则隐藏,若隐藏则显示
imm.toggleSoftInput(0,InputMethodManager.HIDE_NOT_ALWAYS);
手动显示
imm.showSoftInput(view,InputMethodManager.SHOW_FORCED);
如何让软键盘在点击除EditText以外隐藏
public void setupUI(View view) {//根view if (!(view instanceof EditText)) { view.setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); if (imm != null) { imm.hideSoftInputFromWindow(v.getWindowToken(), 0); } return false; } }); } if (view instanceof ViewGroup) { for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) { View innerView = ((ViewGroup) view).getChildAt(i); setupUI(innerView); } } }