在Android 自定义键盘中,如何将字母键盘更改为符号键盘?
In Android Custom Keyboard, how to change Alphabets Keyboard to Symbols 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)
}
}
}
请问有没有其他方法可以改变键盘(或)我做错了什么
我遇到的情况如下图。
字母键盘:
在 Kotlin 中使用 setMethod 在 KeyboardView 中更改键盘时,它会发生一些轻微的变化 UI 错误
符号键盘:
注:
- 符号键盘没有问题。 Bcz 我们试着把它作为主要的
键盘在第一时间充气。当时没问题。
- 问题出在键盘更改部分(onKey 方法)。字母键盘在更改键盘时也不完全兼容
键盘布局根据 百分比 而非 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>
在将用户从字母键盘导航到符号键盘时,布局对齐被破坏了。默认情况下,布局采用 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)
}
}
}
请问有没有其他方法可以改变键盘(或)我做错了什么
我遇到的情况如下图。
字母键盘:
在 Kotlin 中使用 setMethod 在 KeyboardView 中更改键盘时,它会发生一些轻微的变化 UI 错误
符号键盘:
注:
- 符号键盘没有问题。 Bcz 我们试着把它作为主要的 键盘在第一时间充气。当时没问题。
- 问题出在键盘更改部分(onKey 方法)。字母键盘在更改键盘时也不完全兼容
键盘布局根据 百分比 而非 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>