用Kotlin关闭/隐藏Android软键盘

我正在尝试在Kotlin上编写一个简单的Android应用程序。 我的布局中有一个EditText和一个按钮。 在编辑栏中写入并单击按钮后,我想要隐藏虚拟键盘。

有一个流行的问题关闭/隐藏Android软键盘关于在Java中使用它,但据我了解,应该有一个替代版本的Kotlin。 我应该怎么做?


我想我们可以稍微改进Viktor的答案。 基于它总是附加到一个视图,会有上下文,如果有上下文,那么有InputMethodManager

fun View.hideKeyboard() {
    val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
    imm.hideSoftInputFromWindow(windowToken, 0)
}

在这种情况下,上下文自动意味着视图的上下文。 你怎么看?


Peter的解决方案通过扩展View类的功能来整齐地解决问题。 另一种方法可以是扩展Activity类的功能,从而将隐藏键盘的操作绑定到View的容器而不是View本身。

fun Activity.hideKeyboard() {
    val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
    imm.hideSoftInputFromWindow(findViewById(android.R.id.content).getWindowToken(), 0);
}

你可以使用Anko让生活更轻松,所以这条线会是:

inputMethodManager.hideSoftInputFromWindow(view.windowToken, 0)

或者可能更好地创建扩展功能:

fun View.hideKeyboard(inputMethodManager: InputMethodManager) {
    inputMethodManager.hideSoftInputFromWindow(windowToken, 0)
}

并像这样称呼它:

view?.hideKeyboard(activity.inputMethodManager)
链接地址: http://www.djcxy.com/p/2725.html

上一篇: Close/hide the Android Soft Keyboard with Kotlin

下一篇: Close/hide the Android Soft Keyboard on activity state onStop