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

时间:2012-03-03 15:18:30

标签: android

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

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

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

    if(mKeyboardView != null)
        mKeyboardView.invalidateAllKeys();
}

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

1 个答案:

答案 0 :(得分:4)

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

@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));
}

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