Android sdk 软键盘准确度

标签 android android-softkeyboard

我刚刚在 eclipse 中导入了 sdk 软键盘(来自 API 版本 16 的示例代码,但也尝试了早期版本)并将其安装在我的设备(Galaxy Note 10.1、Galaxy S2 和 Galaxy Nexus)上。 经过一些测试后,我注意到一个奇怪的行为:当我按下最上面的一个键时,键盘会向我显示我真正按下的字母上方的字母的建议。 对于我目前的研究,我需要实现一个软键盘并添加一些功能。但是对于这些功能,我需要一个准确的键盘。

你能确认这个行为并给我任何修复建议吗?

非常感谢您。

最佳答案

经过几个小时的搜索,我终于找到了解决问题的办法。

android示例键盘使用继承自KeyboardViewKeyboardViewStyle 在 android 源代码中,我找到了 Widget.KeyboardView

的定义
<style name="Widget.KeyboardView" parent="android:Widget">
    <item name="android:background">@android:drawable/keyboard_background</item>
    <item name="android:keyBackground">@android:drawable/btn_keyboard_key</item>
    <item name="android:keyTextSize">22sp</item>
    <item name="android:keyTextColor">#FFFFFFFF</item>
    <item name="android:keyPreviewLayout">@android:layout/keyboard_key_preview</item>
    <item name="android:keyPreviewOffset">-12dip</item>
    <item name="android:keyPreviewHeight">80dip</item>
    <item name="android:labelTextSize">14sp</item>
    <item name="android:popupLayout">@android:layout/keyboard_popup_keyboard</item>
    <item name="android:verticalCorrection">-10dip</item>
    <item name="android:shadowColor">#BB000000</item>
    <item name="android:shadowRadius">2.75</item>
</style>

我注意到下面一行:

<item name="android:verticalCorrection">-10dip</item>

为了解决我的问题,我定义了我自己的样式,它继承自 Widget.KeyboardView 并通过以下方式覆盖了 android:verticalCorrection:

<style name="Widget.MyKeyboardView" parent="android:Widget.KeyboardView">
    <item name="android:verticalCorrection">0dip</item>
</style>

最后我将样式应用到我的键盘上。

瞧瞧 :)

关于Android sdk 软键盘准确度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13290654/

相关文章:

java - 使 native 代码访问java方法和数据成员

android - 防止 EditText 在软键盘的“下一步”按钮单击上获得焦点

android - 如何在使用 InputMethodManager 隐藏后恢复软键盘

android - 如何禁用 SoftKeyBoard 上的 "input methods"?

android - 如何在 EditText 聚焦时禁用键盘显示?

Android GLSurfaceView 作为 subview

android - 如何使用另一个位图作为掩码在位图上绘制?

Android 没有足够的页面磁贴?

java - setOnLongClickListener 不适用于 PinchImageView

android - 如何强制软键盘不在edittext下隐藏textview/counter?