Программная клавиатура не прячется при закрытии диалога, когда диалог вызывается из другого - PullRequest
4 голосов
/ 03 июня 2019

У меня есть диалог для ввода номера.Когда я вызываю это из действия и затем отклоняю это, мягкая клавиатура скрывается.Но есть проблема, когда я открываю его из другого диалога.В этом случае, когда я щелкаю за пределами диалогового окна, мое диалоговое окно закрывается, но клавиатура все еще видна, даже явный вызов hideSoftKeyboard не решает проблему.Но когда я закрываю диалог, используя отрицательные или положительные кнопки, клавиатура скрывается.

Вот мой код:

builder.setPositiveButton(R.string.ok_button, (dialog, which) -> {
    ...
    hideSoftKeyboard(editText, requireActivity());
});

builder.setNegativeButton(R.string.cancel_button, (dialog, which) -> hideSoftKeyboard(editText, requireActivity()));


public static void hideSoftKeyboard(View view, Context context) {
    if (view != null) {
        InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService(Activity.INPUT_METHOD_SERVICE);
        inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0);
    }
}

1 Ответ

1 голос
/ 03 июня 2019

Попробуйте это:

dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...