我的应用程序有一个自定义键盘,但我似乎无法在设备旋转时调整它的大小。你可以在这里看到我的意思: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/

10-09 01:29