Android KeyboardView 不会在旋转时调整大小

use*_*259 4 android

我的应用程序有一个自定义键盘,但我似乎无法在设备旋转时调整它的大小。你可以在这里看到我的意思:http : //imgur.com/TsEM9和这里:http : //imgur.com/2hhX8

在我的活动中,我试图强制键盘像这样重绘:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

    if(mKeyboardView != null)
        mKeyboardView.invalidateAllKeys();
}
Run Code Online (Sandbox Code Playgroud)

我也试过调用 invalidate(),但无济于事。

use*_*259 5

终于找到答案了!我不知道它是否正确,但它似乎有效。我必须在旋转时重新创建键盘,如下所示:

@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));
}
Run Code Online (Sandbox Code Playgroud)

此外,为了记录,并不是视图没有调整大小;它是。问题是键没有调整大小。