用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