我刚刚在 Eclipse 中导入了 sdk 软键盘(来自 API 版本 16 的示例代码,但也尝试了早期版本)并将其安装在我的设备上(Galaxy Note 10.1、Galaxy S2 和 Galaxy Nexus)。经过一些测试,我注意到一个奇怪的行为:当我按下最顶部的一个键时,键盘会向我显示我真正按下的字母上方的字母的建议。对于我目前的研究,我需要实现一个软键盘并添加一些功能。但是对于这些功能,我需要一个准确的键盘。
您能否确认该行为并给我任何解决方法的建议?
非常感谢您提前。
我刚刚在 Eclipse 中导入了 sdk 软键盘(来自 API 版本 16 的示例代码,但也尝试了早期版本)并将其安装在我的设备上(Galaxy Note 10.1、Galaxy S2 和 Galaxy Nexus)。经过一些测试,我注意到一个奇怪的行为:当我按下最顶部的一个键时,键盘会向我显示我真正按下的字母上方的字母的建议。对于我目前的研究,我需要实现一个软键盘并添加一些功能。但是对于这些功能,我需要一个准确的键盘。
您能否确认该行为并给我任何解决方法的建议?
非常感谢您提前。
经过数小时的搜索,我终于找到了解决问题的方法。
android 示例键盘使用KeyboardViewStyle
继承自KeyboardView
在 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>
最后,我将样式应用于我的键盘。
等等瞧 :)