public static void inputClose(View view, Context context) {
if (view instanceof EditText) {
view.clearFocus();
}
try {
InputMethodManager im = (InputMethodManager)
context.getSystemService(Context.INPUT_METHOD_SERVICE);
im.hideSoftInputFromWindow(view.getWindowToken(), 0);
} catch (NullPointerException e) {
e.printStackTrace();
}
}
首先,调用 InputMethodManager。
在oncreate里面调用这个方法。
找到最外部的容器控件。如:
ScrollView aaa;
aaa = (ScrollView) findViewById(R.id.aaa);
aaa.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
inputClose(aaa, MainActivity.this);
return MainActivity.this.onTouchEvent(motionEvent);
}
});
这样就可以完美解决了。