主要通过设置focus实现:
1、edittext默认xml配置中不要给focus,在xml顶层layout设置focus:
android:focusable="true"
android:focusableInTouchMode="true"
2、设置edittext的focus监听:
editText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
editText.clearFocus();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
}
}
});
这样就可以了,如果有其他widget抢了fucus,需要在操作完成clearFocus。