软键盘和编辑文本之间的空格


当软键盘弹出时,我需要在键盘和edittext之间提供一些填充,这通常会隐藏edittext的底部。

当软键盘打开时,我需要完整的edittext视图可见。更重要的是,我不能使用android:windowSoftInputMode = "adjustResize",它在我的用例中不起作用。我正在使用";adjustPan";。

那么,如何在不更改窗口SoftInputMode的情况下实现同样的效果呢?

为类中的EditText创建此函数:

private fun View.focusAndShowKeyboard() {
fun View.showTheKeyboardNow() {
if (isFocused) {
post {
val imm =
context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.showSoftInput(this, InputMethodManager.SHOW_IMPLICIT)
}
}
}
requestFocus()
if (hasWindowFocus()) {
showTheKeyboardNow()
} else {
viewTreeObserver.addOnWindowFocusChangeListener(
object : ViewTreeObserver.OnWindowFocusChangeListener {
override fun onWindowFocusChanged(hasFocus: Boolean) {
if (hasFocus) {
this@focusAndShowKeyboard.showTheKeyboardNow()
viewTreeObserver.removeOnWindowFocusChangeListener(this)
}
}
})
}
}

你可以这样使用它:

txtValue.focusAndShowKeyboard()

就是这样。编码快乐!!!:~(

activity?.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE)

在你的片段的OnResume方法中使用它对我有效

最新更新