如何在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)
    }

购买它在底部工作表对话框中不起作用

解决方法

尝试以下操作:

    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);
,

你确定 requireActivity().currentFocus 没有返回 null?当我尝试你的代码时,这似乎总是发生,如果它发生,它什么都不做是有道理的。我建议以另一种方式查看。只要您在从 onCreateView 返回后调用该函数,您就可以使用 view(来自 getView()):

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