如何强制重绘软键盘

时间:2011-11-20 20:07:48

标签: android keyboard

我创建了一个自定义键盘,在方向更改时无法正确调整大小。我已经尝试invalidateKeys(),并手动设置所有键的大小,但没有快乐。

2 个答案:

答案 0 :(得分:1)

我在动态调整键盘视图的键高度时遇到了类似的问题。为了解决这个问题,我做了几件事:

1)创建一个新类,扩展Keyboard类,定义公共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);

我希望这会有所帮助......

答案 1 :(得分:0)

我的键盘会在用户点击任何字符按钮后更改某些键并重新绘制软键盘。我在invalidateAllKeys()的子类上调用KeyboardView来重绘键盘。 invalidateAllKeys()工作正常!