Ниже приведен код, который мне удалось найти, чтобы скрыть мягкую клавиатуру на Android. Он работает щелчком пользователя в любом месте экрана (вне ввода EditText
), чтобы скрыть мягкую клавиатуру IME. Он регистрирует OnTouchListener
до ScrollView (id="@+id/sv_background)
, который при касании экрана скрывает мягкую клавиатуру IME с помощью кода InputMethodManager
. Я установил представление прокрутки в качестве родительского макета в этом случае, но он также работает с любым другим видом макета.
Надеюсь, это полезно кому-то там, в суше Android.
XML
<ScrollView
android:id="@+id/sv_background"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<other views and EditTexts/>
</ScrollView>
Java
private ScrollView svBackground;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.newentry);
svBackground = (ScrollView)findViewById(R.id.sv_background);
svBackground.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(svBackground.getWindowToken(), 0);
return false;
}
});
}