当前位置: 首页 > 知识库问答 >
问题:

关闭/隐藏kotlin中的软输入键盘[重复]

梁丘宏硕
2023-03-14

我有一个按钮和编辑文本。当用户在编辑文本中完成输入并按下按钮时,我想关闭我的软键盘。

或它的任何指南或参考链接。

共有3个答案

李昌勋
2023-03-14

您可以使用新功能扩展所有EditText,该功能将在EditText的焦点丢失时始终隐藏软键盘。如果要隐藏键盘,当某些EditText的焦点丢失时,只需将这行代码用于该EditText

editText.hideSoftKeyboardOnFocusLostEnabled(true)

EditText的扩展中,我们只需添加或删除我们自己的OnFocus usLostListener

fun EditText.hideSoftKeyboardOnFocusLostEnabled(enabled: Boolean) {
    val listener = if (enabled)
        OnFocusLostListener()
    else
        null
    onFocusChangeListener = listener
}

下面是OnFocusLostListener的实现,如果附加的视图的焦点丢失,它将隐藏键盘。

class OnFocusLostListener: View.OnFocusChangeListener {
    override fun onFocusChange(v: View, hasFocus: Boolean) {
        if (!hasFocus) {
            val imm = v.context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
            imm.hideSoftInputFromWindow(v.windowToken, 0)
        }
    }
}

秦才英
2023-03-14

我稍微修改了@Serj Ardovic的反应

private fun hideKeyboard(view: View) {
    view?.apply {
        val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
        imm.hideSoftInputFromWindow(view.windowToken, 0)
    }
}

因为它真的适合我的要求

苏鸿志
2023-03-14

调用此函数以隐藏系统键盘:

fun View.hideKeyboard() {
    val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
    imm.hideSoftInputFromWindow(windowToken, 0)
}
 类似资料:
  • 我正试图在Kotlin中编写一个简单的Android应用程序。我的版面中有一个编辑文本和一个按钮。在编辑字段中写入并单击按钮后,我想隐藏虚拟键盘。 关于用Java实现Android软键盘,有一个流行的问题是关闭/隐藏Android软键盘,但据我所知,Kotlin应该有一个替代版本。我该怎么做?

  • 我需要隐藏软键盘以响应单击按钮。我看到了一些关于这方面的帖子,我尝试了: 这很有效。但现在我有两个EditText视图。无论选择了哪个EditText,现在如何隐藏软键盘?我也试过了 ,但那不起作用... 谢谢你的帮助! 编辑:找到解决方案。贴在下面。

  • 我有一个AutoCompleteTextView,它像往常一样在用户键入3个字母后提供建议。一旦我触摸建议列表,我想隐藏软键盘一次。我在下面用表格布局所做的只是在单击除建议列表之外的任何地方时隐藏键盘。 可扩展置标语言 爪哇岛 用于自定义列表的 XML

  • 问题内容: 使用适用于Android和iOS的Phonegap 3.6.3创建移动应用程序。问题仅适用于Android,因为iOS的运行方式符合我的期望。 当我单击输入文本字段或文本区域时,将出现软键盘。它有时涵盖这些元素。 这些页面被放置在iScroll的底部,并位于另一个绝对放置的div中,因此,一旦屏幕弹出,我将无法滚动到其中任何一个页面。我怀疑键盘抬起时必须将Webview更改为较小。但是

  • 问题内容: 我正在为优惠券公司开发前端站点,并且我有一个页面,用户只需要输入电话号码和花费的$$。我们想出了一个有趣的内置Java脚本的屏幕键盘,该键盘易于使用且速度很快。但是,我正在寻找一种解决方案,以防止用户聚焦并在这些字段中输入文本/数字时弹出软键盘。 我知道HTML5提出的“数字/电话/电子邮件”类型属性。但是,冒着听起来发疯的风险,我真的只想使用屏幕键盘即可。 注意:此网站主要针对平板电

  • 我试图防止在SearchView上调用requestFocus()后键盘出现,但在Android8上没有解决方案。 我试过: /*3/ /*4/ onGlobalLayout()工作,但软键盘显示了近0.5秒后消失。 即使在调用requestFocus()之后,是否可以帮助隐藏软键盘?