我正在使用Android 示例软键作为学习项目。我已经添加了第二种语言,到目前为止,一切都很好。但是,我发现很难解决。在将设备的方向从肖像更改为风景时,我希望有任何钥匙扣布局要保持。逻辑是:
// on orientation or configuration change
if (currentKeyboard==mQwertyKeyboard) {
// keep as is
mCurKeyboard = mQwertyKeyboard ;
}else if (currentKeyboard == mSymbolsKeyboard) {
// keep as is
mCurKeyboard = mSymbolsKeyboard;
}else if (currentKeyboard == mSymbolsShiftedKeyboard) {
// keep as is
mCurKeyboard = mSymbolsShiftedKeyboard ;
}
我试图在:
中实现它@Override
public void onConfigurationChanged(Configuration newConfig) {...}
softkeyboard.java内部,但没有实现。预先感谢。
我也有同样的问题 - 我通过使用onConfigurationChanged(Configuration newConfig)
和少量侧面编码
如果将其删除,我的代码将更改方向,但不会调整我的键盘大小。由于我喜欢父母的重新尺寸功能,因此我制作了一个包含所有键盘的数组,并且在更改方向后,我会更新数组,以便键盘阵列具有正确的尺寸。
@Override
public void onConfigurationChanged(Configuration newConfig) {
int currentKeyboard = 0;
boolean isShifted = kv.isShifted();
for (int i = 0; i < keyboard.length; i++) {
if(kv.getKeyboard().equals(keyboard[i])){
currentKeyboard = i;
break;
}
}
super.onConfigurationChanged(newConfig);
initializeKeyboardArray();
setKeyboard(keyboard[currentKeyboard]);
kv.setShifted(isShifted);
}
private void initializeKeyboardArray(){
keyboard = new Keyboard[7];
keyboard[ARABIC] = arabic;
keyboard[ARABIC_SHIFT] = arabicShift;
keyboard[ARABIC_SYMBOLS] = arabicSymbols;
keyboard[ARABIC_SYMBOLS_SHIFT] = arabicSymbolsShift;
keyboard[QWERTY] = qwerty;
keyboard[QWERTY_SYMBOLS] = qwertySymbols;
keyboard[QWERTY_SYMBOLS_SHIFT] = qwertySymbolsShift;
}