2011-11-20 106 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()工作正常!