我的应用程序有一个自定义键盘,但我似乎无法在设备旋转时调整它的大小。你可以在这里看到我的意思:http://imgur.com/TsEM9 和这里:http://imgur.com/2hhX8
在我的 Activity 中,我试图强制键盘像这样重绘:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if(mKeyboardView != null)
mKeyboardView.invalidateAllKeys();
}
我也试过调用 invalidate(),但无济于事。
最佳答案
终于找到答案了!我不知道它是否正确,但它似乎有效。我必须在旋转时重新创建键盘,如下所示:
@Override
public void onConfigurationChanged (Configuration newConfig) {
super.onConfigurationChanged(newConfig);
createKeyboard();
}
private void createKeyboard() {
mKeyboard = new Keyboard(this, R.xml.qwerty);
mKeyboardView = (MyKeyboardView) findViewById(R.id.keyboard_view);
mKeyboardView.setKeyboard(mKeyboard);
mKeyboardView.setOnKeyboardActionListener(new MyKeyboardActionListener((Activity)this));
}
此外,为了记录,并不是 View 没有调整大小;它是。问题是键没有调整大小。
关于Android KeyboardView 不会在旋转时调整大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9547202/