В Android Custom Keyboard, как изменить алфавитную клавиатуру на символьную клавиатуру?

При переходе пользователя от алфавитной клавиатуры к символической клавиатуре выравнивание раскладок портится. По умолчанию макет занимает 5 дпд, и пользователь не может видеть ключи последнего столбца.

Примечание: изображения показаны ниже.

Я обработал ключевые действия для перехода пользователя от клавиатуры алфавита к клавиатуре символа в методе onKey

override fun onKey(primaryCode: Int, keyCodes: IntArray?) {
when (primaryCode) {
        KEYCODE_ALPHABETS -> {
            keyboardView?.keyboard = Keyboard(this, R.xml.keyboard)
        }

        KEYCODE_SYMBOLS_1 -> {
            keyboardView?.keyboard = Keyboard(this, R.xml.keyboard_symbols_1)
        }

        KEYCODE_SYMBOLS_2 -> {
            keyboardView?.keyboard = Keyboard(this, R.xml.keyboard_symbols_2)
        }
 }

}

Просьба предложить, есть ли другой способ изменить клавиатуру (или), что я сделал неправильно

То, с чем я столкнулся, показано ниже. Алфавит Клавиатура:

При смене клавиатуры в KeyboardView с использованием setMethod в Kotlin она меняется с некоторой незначительной ошибкой пользовательского интерфейса

Символы Клавиатура:

Замечания:

  • Символы Клавиатура не имеет проблем. Bcz Мы пытались использовать его как первичную клавиатуру для раздувания в самый первый раз. Это не имеет проблемы в то время.
  • Проблема в разделе "Смена клавиатуры" (метод onKey). Алфавитная клавиатура также не полностью совместима при смене клавиатуры

0 ответов

Раскладка клавиатуры рисует каждую клавишу на основе процента не в dp. Поэтому объявите ширину ключа как %p, а не в dp

В файле макета

<Row
            android:horizontalGap="@fraction/key_horizontal_ten_keys_gap"
            android:keyWidth="@fraction/ten_keys_key_width"
            android:rowEdgeFlags="top">
</Row>

В файле ресурсов

<fraction name="ten_keys_key_width">8.8%p</fraction>
Другие вопросы по тегам