記錄一下開發中虛擬鍵盤的使用,fragment和activity中不同的使用
fragment下點擊其它位置隱藏小鍵盤,復制到initView()方法中
view.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { InputMethodManager manager = (InputMethodManager) getActivity()
.getSystemService(Context.INPUT_METHOD_SERVICE); if(event.getAction() == MotionEvent.ACTION_DOWN){ if(getActivity().getCurrentFocus()!=null && getActivity().getCurrentFocus().getWindowToken()!=null){ manager.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); } } return false; } });
activity 下點擊其它位置處隱藏小鍵盤,實現onTouchEvent方法
@Override public boolean onTouchEvent(MotionEvent event) { InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); if(event.getAction() == MotionEvent.ACTION_DOWN){ if(getCurrentFocus()!=null && getCurrentFocus().getWindowToken()!=null){ manager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); } } return super.onTouchEvent(event); }
顯示小鍵盤,在需要顯示的控件onClick中調用,如點擊的是button控件,記得獲取editText的焦點
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
