我需要调出几个不同的键盘:带有 Ctrl 和 Alt 键的“标准”键盘;也许是光标垫;等等。
我找到了 Keyboard
类,它可以让我在 XML 资源中定义键盘。我发现 KeyboardView
类有一个 setKeyboard
方法......而且,到目前为止,我还没有找到任何其他采用 Keyboard
实例。
我应该如何使用 KeyboardView
?我尝试将一个添加到我的 Activity 的 XML 中;在运行时使用 findViewById
找到它;然后调用 setKeyboard
...但是所有这一切都弄乱了我的布局并且没有调出特殊键盘。
最佳答案
事实证明这是非常可行的,我最初的问题可能更多地与一般的 Android 新事物(这是我的第一个 Android 应用程序)有关,而不是 KeyboardView。特别是,我习惯于将可见性作为一个简单的二进制属性。
无论如何:
- 声明
KeyboardView
在您的 XML 文件中使用android:visibility="gone"
. - 在使 View 可见之前,调用
setKeyboard()
连接键盘。这很重要,因为KeyboardView
从键盘获取其大小。 - 要获取原始 key 事件,请调用
KeyboardView.setOnKeyboardActionListener()
.从Dialog
重构此功能后回到我的主要View
, 我把OnKeyboardActionListener
独立类中的功能,但这不是必需的。 - 我调用
keyboardView.setEnabled(true);
.这似乎不是必要的,但我不确定(还)在什么情况下它会很重要; 也许只有当你调用setEnabled(false)
. - 我调用
keyboardView.setPreviewEnabled(true);
- 如果用户不会从键盘正上方的输入 biox 获得视觉反馈,这将特别有用。 - 然后,在键盘设置好后,调用
keyboardView.setVisibility(VISIBLE);
.
要在适当的时候隐藏键盘,只需调用 keyboardView.setVisibility(GONE);
.要更改键盘(如 shift 键或循环符号键盘键,只需再次调用 setKeyboard
。我使用 Map<<Integer, Keyboard>
来实现惰性创建模式;弱引用可能是可取的,如果程序会运行很长时间,并且不会经常使用键盘。
关于android - Android 应用程序如何加载键盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3938523/