我想知道这里是否有人知道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(
用户点击AppCompatEditText
并有KEYBOARD_NOKEYS
,安卓会???
软输入
场景2(
用户点击AppCompatEditText
并有KEYBOARD_12KEY
,安卓会???
软输入
场景3(
用户点击AppCompatEditText
并有KEYBOARD_QWERTY
,安卓会???
软输入
问题(第 2 部分(- 是否可以禁用此内置行为
现在您已经填写了??? = [show | hide | do nothing | other]
的所有空白,是否可以禁用这些内置的Android行为?而是通过手动检测设备上的硬件键盘类型并在View.OnFocusChangeListener
内显示/隐藏软键盘,将它们全部替换为自定义版本?
是否显示软键盘,其实是由软键盘决定的。 软键盘有一个函数InputMethodService.onEvaluateInputViewDisplay((。 当有机会显示软键盘时,将调用此函数。 如果返回 true,将显示键盘。 默认实现是查看硬件键盘是否存在,如果存在,则不显示。 但是软键盘无论如何都可以覆盖它以显示。
所有这些都完全取决于软键盘应用程序 - 无论他们使用哪种键盘(因此行为可以根据用户喜欢的键盘而改变(。 没有其他任何东西可以覆盖它。