как скрыть программную клавишу в диалоговом окне нижнего листа в Android

Я пытаюсь скрыть софт-клавишу на нижнем щелчке во фрагменте диалогового окна нижнего листа. Я уже пробовал это:

          try {
        val view: View? = requireActivity().currentFocus
        if (view != null) {
            (requireActivity().getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager).hideSoftInputFromWindow(
                view.windowToken,
                0)
        }
    } catch (e: Exception) {
        Logger.e(TAG, "can't hide the softKey --> ${e.message}", e)
    }

купить, что он не работает в диалоговом окне нижнего листа

2 ответа

Уверены ли вы requireActivity().currentFocusне возвращает null? Кажется, это всегда происходит, когда я пробую ваш код, и если это так, то имеет смысл, что он ничего не делает. Я бы посоветовал взглянуть по-другому. Пока вы вызываете функцию после того, как вернулись из onCreateView вы можете просто использовать view (из getView()):

      val imm = requireActivity().getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(view?.windowToken, 0)

Попробуйте следующее:

          getDialog().getWindow().getDecorView().setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);