1

Я изменяю приложение для мягкой клавиатурной программы с помощью Android-sdk. Я заметил, что клавиши алфавита, кажется, попадают, даже если я касаюсь позиции ниже ключа. В частности, если я касаюсь верхней границы клавиши «A», тогда клавиатура фактически регистрирует «Q». Кажется, что ограничивающий прямоугольник для каждого ключа простирается до пустого пространства под ним, а иногда даже имеет верхнюю часть ключа ниже.Клавиша софт-клавиатуры Android не попадает должным образом

Кроме того, я попытался изменить макет нижней строки так, чтобы клавиша пробела была больше, как показано ниже. Однако, как только я это сделаю, есть часть справа от ключа пробела, который не регистрируется, когда я касаюсь. Эта область, по-видимому, занимает 10% от ширины. Любые идеи, как я могу отладить эти проблемы?

<Row android:rowEdgeFlags="bottom"> 
     <Key android:codes="-2" android:keyLabel="123" android:keyWidth="15%p" android:keyEdgeFlags="left"/> 
     <Key android:codes="32" android:keyWidth="55%p" android:isRepeatable="true"/> 
     <Key android:codes="46" android:keyLabel="." android:keyWidth="10%p"/> 
     <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" 
       android:keyWidth="20%p" android:keyEdgeFlags="right"/> 
    </Row> 
+2

Возможно, вы захотите изучить настройку вертикальной коррекции в android.inputmethodservice.KeyboardView или даже код клавиатуры AOSP, который также может быть интересен для просмотра. –

+0

Спасибо, я посмотрю. Любые предложения по вопросам прошивки? – user1715925

+0

Я бы, наверное, исследовал эти ключевые граничные флаги. В версии AOSP есть какая-то интересная логика, я действительно не смотрел, что класс SDK имеет в сравнении, но настройки в вашем XML заставляют казаться, что он что-то делает. –

ответ

2

Найдено ответ для пространства ключевой части выше: android custom keyboard: touch area of space key not completely covered

Что касается вертикальной коррекции, @ChrisStratton является правильным. Я заглянул в него, и все, что мне нужно было сделать, это добавить android:verticalCorrection="0dp" в res\layout\input.xml, и ключи начали бить правильно.

 Смежные вопросы

  • Нет связанных вопросов^_^