android - KEYBOARD_12KEY、KEYBOARD_QWERTY 和 KEYBOARD_NOKEYS 的 Android 软输入行为
问题描述
我想知道这里是否有人知道 Android 在什么情况下会向用户显示屏幕软键盘,以及 Android 如何考虑可用的不同类型的硬件键盘(KEYBOARD_12KEY
、KEYBOARD_QWERTY
和KEYBOARD_NOKEYS
)。
https://developer.android.com/reference/android/content/res/Configuration#keyboard
问题(第 1 部分)- 有人可以填写以下内容吗
注意??? = [show | hide | do nothing | other]
场景1)
用户点击aAppCompatEditText
和has KEYBOARD_NOKEYS
,Android会???
软输入
场景 2)
用户点击 aAppCompatEditText
和 has KEYBOARD_12KEY
,Android 会???
软输入
场景 3)
用户点击 aAppCompatEditText
和 has KEYBOARD_QWERTY
,Android 会???
软输入
问题(第 2 部分)- 是否可以禁用此内置行为
现在您已经填写了所有的空白??? = [show | hide | do nothing | other]
,是否可以禁用这些内置的 Android 行为?而是通过手动检测设备上的硬件键盘类型并将软键盘显示/隐藏在View.OnFocusChangeListener
?
解决方案
是否显示软键盘实际上是由软键盘决定的。软键盘有一个函数 InputMethodService.onEvaluateInputViewShown()。当有机会显示软键盘时调用此函数。如果它返回 true,将显示键盘。默认实现是查看是否存在硬件键盘,如果存在则不显示。但是软键盘可以覆盖它以显示。
所有这一切都完全取决于软键盘应用程序——无论他们使用哪种键盘(因此行为可以根据用户喜欢的键盘而改变)。其他任何东西都无法覆盖它。
推荐阅读
- javascript - 这两个函数'foo1'和'foo2'有什么区别?
- java - 即使设置条件结果为假,TextInputLayout 错误消息也会一直显示
- javascript - 最新@angular/fire 中的错误:Firebase:没有创建 Firebase App '[DEFAULT]' - 调用 Firebase App.initializeApp()
- machine-learning - 粒子群优化:在高维空间中过快收敛到局部最优
- python - 保存 PDF 空白页 matplotlib
- javascript - React CSS 转换在 Typescript 中根本不起作用
- drake - 不支持形状“Box”和“Box”之间的有符号距离查询
- django - request.data 找不到 request.body 中的数据 - Django Rest Framework
- google-sheets - 谷歌电子表格根据另一个单元格上的内容更改单元格
- arrays - 如何选择二维数组中的对象?