1,在.xml文件中,editview 外部的 layout增加以下配置:
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"
即拿到焦点,不会进入页面就弹出键盘,影响体验。
2,在activity中,增加焦点改变的监听 OnFocusChangeListener
//点击软键盘外部,收起软键盘
View.OnFocusChangeListener onFocusChangeListener = new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean hasFocus) {
LogUtil.i("hasFocus:"+hasFocus);
if(!hasFocus){
InputMethodManager manager = ((InputMethodManager) MyApplication.sContext.getSystemService(MyApplication.sContext.INPUT_METHOD_SERVICE));
if (manager != null)
manager.hideSoftInputFromWindow(view.getWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS);
}
}
};
3,给editview增加监听
mTestEdit.setOnFocusChangeListener(onFocusChangeListener)
4,如此就完成了!