Android自定义键盘方向符号/QWERTY



我正在使用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;
}

最新更新