How to hide soft keyboard on android after clicking outside EditText?

前端 未结 30 2305
醉话见心
醉话见心 2020-11-22 11:46

Ok everyone knows that to hide a keyboard you need to implement:

InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
imm.hi         


        
30条回答
  •  礼貌的吻别
    2020-11-22 12:28

    This may be old but I got this working by implenting a custom class

    public class DismissKeyboardListener implements OnClickListener {
    
        Activity mAct;
    
        public DismissKeyboardListener(Activity act) {
            this.mAct = act;
        }
    
        @Override
        public void onClick(View v) {
            if ( v instanceof ViewGroup ) {
                hideSoftKeyboard( this.mAct );
            }
        }       
    }
    
    public void hideSoftKeyboard(Activity activity) {
            InputMethodManager imm = (InputMethodManager)
            getSystemService(Activity.INPUT_METHOD_SERVICE);
            imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
    }
    

    the best practice here is to create a Helper class and every container Relative / Linear Layouts should implement this.

    **** Take note only the main Container should implement this class (For optimization) ****

    and implement it like this :

    Parent.setOnClickListener( new DismissKeyboardListener(this) ); 
    

    the keyword this is for Activity. so if you are on fragment you use like getActivity();

    ---thumbs up if it help you... --- cheers Ralph ---

提交回复
热议问题