在Android自定义键盘中,如何将字母键盘更改为符号键盘?

时间:2018-12-28 13:08:59

标签: android kotlin keyboard-events android-input-method android-custom-keyboard

从“字母键盘”导航到“符号键盘”时,布局对齐方式被破坏了。默认情况下,布局采用5dp填充,并且用户看不到“最后一栏”键。

注意:下面显示的图像。

我通过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)
        }
 }

}

请提示还有其他方法可以更改键盘(或)我做错了的事情

我面临的情况如下所示。 字母键盘: enter image description here

在Kotlin中使用setMethod在KeyboardView中更改键盘时,它会发生轻微的UI错误

符号键盘: enter image description here

注意:

  • 符号键盘没有问题。 Bcz我们试图将其作为主要 键盘在第一次充气。当时没有问题。
  • 问题在键盘更改部分(onKey方法)中。更改键盘时,字母键盘也不完全兼容

1 个答案:

答案 0 :(得分:1)

“键盘布局”根据百分比(而不是 dp )绘制每个键。 因此,请在 dp

中声明密钥宽度为%p

在布局文件中

<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>