2012-11-08 46 views
3

我剛剛在eclipse中導入了sdk softkeyboard(API版本16的示例代碼,但也試過早期版本),並將其安裝在我的設備(Galaxy Note 10.1,Galaxy S2和Galaxy Nexus)上。 經過一些測試後,我注意到一個奇怪的行爲:當我在頂部按下一個鍵時,鍵盤會向我顯示該字母的建議,該字母位於我真正按下的字母上方。 對於我目前的研究,我需要實現軟鍵盤並添加一些功能。但對於這些功能,我需要一個精確的鍵盤。Androids sdk softkeyboard準確性

您能否確認該行爲並給我提出任何建議如何解決?

非常感謝您提前。

回答

5

經過幾個小時的搜索,我終於找到了解決問題的方案。

Android的樣品鍵盤採用從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> 

有定義的KeyboardViewStyle我注意到以下行:

<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> 

最後,我將這種風格應用到了我的鍵盤上。

等瞧:)

+0

能否請你添加更多的細節如何以及在何處(哪個文件,哪個部門)應用的風格鍵盤。我自己的keybaord使用默認樣式,所以我沒有模型可以遵循。 –