gpt4 book ai didi

安卓 : How to prevent softkeyboard hidden when hardwarekeyboard input

转载 作者:行者123 更新时间:2023-11-29 02:22:36 25 4
gpt4 key购买 nike

我创建了 EditText 并将其应用于 InputMethodManagershowSoftInput。当我输入物理键时,键盘会自动隐藏。

我想防止键盘自动隐藏。

我试过下面的方法。1. 使用 showSoftInput 标志 ImputMethodManager.SHOW_IMPLICIT, SHOW_FORCED2.在EditText中使用InputConnectionWrapper,字符串和数字正常工作。但是 ctrl、Tab、Alt、F1、F2。输入一个键隐藏键盘。

我希望输入物理键时键盘不会被隐藏。感谢您的阅读。

最佳答案

一个不错的选择是当有来自硬件键盘的输入时关闭软键盘

Android 类通常提供事件处理程序,您可以在子类化它们时实现。 Activity 类具有以下事件处理程序:

  • onKeyDown(int keyCode, KeyEvent 事件)
  • onKeyLongPress(int keyCode, KeyEvent 事件)
  • onKeyMultiple(int keyCode, int repeatCount, KeyEvent 事件)
  • onKeyShortcut(int keyCode, KeyEvent 事件)
  • onKeyUp(int keyCode, KeyEvent 事件)

此外,所有 View 都有以下事件处理程序:

  • onKeyDown(int, KeyEvent)
  • onKeyUp(int, KeyEvent)

我想还有许多其他类对关键事件具有类似的事件处理程序,但这应该足以满足您的情况。 KeyEvent然后包含有关按下的键的信息,即键码。

在你的情况下你可能想做这样的事情:

在您的 activityview 类中覆盖 onKeyDownonKeyUp 方法和将软键盘隐藏在那里:

override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
hideSoftKeyboard()
return super.onKeyUp(keyCode, event)
}

或者你可以为你的编辑文本添加一个keyListener

mEditText.setOnKeyListener { v, keyCode, event ->
hideSoftKeyboard()
return@setOnKeyListener when (keyCode) {
KeyEvent.ACTION_UP -> {
hideSoftKeyboard()
true
}
else -> false
}
}

如何关闭softKeyword:

fun hideSoftKeyboard() {
try {
val inputMethodManager = getSystemService(
Activity.INPUT_METHOD_SERVICE
) as InputMethodManager
inputMethodManager.hideSoftInputFromWindow(
currentFocus!!.windowToken, 0)
} catch (e: Exception) {}
}

关于安卓 : How to prevent softkeyboard hidden when hardwarekeyboard input,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54342510/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com