我的应用程序有一个自定义键盘,但我似乎无法在设备旋转时调整它的大小。你可以在这里看到我的意思: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(),但无济于事。
终于找到答案了!我不知道它是否正确,但它似乎有效。我必须在旋转时重新创建键盘,如下所示:
@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)
此外,为了记录,并不是视图没有调整大小;它是。问题是键没有调整大小。
| 归档时间: |
|
| 查看次数: |
614 次 |
| 最近记录: |