2011-11-20 81 views
1

的重繪我創建一個自定義鍵盤不正確的調整方向改變時。我試過invalidateKeys(),並手動設置所有鍵的大小,但沒有喜悅。如何強制軟鍵盤

回答

1

我是有動態調整我keyboardview重點高度simular問題。要解決這個問題,我做了幾件事情:

1)創建擴展鍵盤類,定義了一個公共getKeyHeight方法和覆蓋的getHeight方法的新類。我的原型代碼:

public void setKeyHeight(int height) { 
    super.setKeyHeight(height); 
} 

@Override 
public int getHeight() { 
    return getKeyHeight() * 3; 
} 

2)定義了一個新的方法在我

double height_modifier = 1.5; 

int height = 0; 
for(Keyboard.Key key : mKeyboard.getKeys()) { 
    key.height *= height_modifier; 
    key.y *= height_modifier; 
    height = key.height; 
} 
mKeyboard.setKeyHeight(height); 

我希望這有助於...

+0

若延續鍵盤類,那還有什麼你的構造是什麼樣子? –

+1

新方法似乎可以成功更改按鍵高度,但如何更改整體鍵盤高度? – Bruce

+0

你能解釋代碼重寫getHeight()並返回getKeyHeight()* 3嗎?我無法弄清楚這是什麼。沒有把它放在鍵盤高度是完全錯誤的,把它放在後面會更好,但底部有一個小小的差距。我將它改爲2倍,鍵盤高度恰到好處!然而,這使得我的底部行不可觸摸..看起來像一個不可見的東西阻止它,我不能按底部的行鍵,但我不知道爲什麼.. – Bruce

0

我的鍵盤更改某些鍵和用戶點擊後重繪softkeyboard任何字符按鈕。我在我的子類KeyboardView上調用invalidateAllKeys()來重新繪製鍵盤。 invalidateAllKeys()工作正常!