カスタム キーボードを作成する場合、キーの先頭のスペース (左側のスペース) をandroid:horizontalGap="6.25%p.
取得するには、[末尾のスペース (右側のスペース) を取得するにはどうすればよいですか?] を使用します。
質問する
3874 次
4 に答える
1
私もこの問題を抱えていました。私は良い解決策を見つけたことはありません。Android のキーボード レイアウト API は最悪です。これを最初からやり直していたら、それを使用せず、代わりに独自の UI をゼロから作成して、InputMethod と直接やり取りしていたでしょう。
いずれにせよ、私のハック ソリューションは、レイアウトの下部に幅 100%、高さ 1 dp のキーを追加することでした。ボタンはまったく何もせず、高さが小さすぎてユーザーには見えません。しかし、キーの幅はギャップの問題を修正します.
于 2016-02-05T17:14:32.963 に答える
0
唯一の回避策は、行の keyWidth の合計が 100% 以下になるように正しい keyWidth を指定することです。(@Lemberg、ご指摘ありがとうございます)
私の例では、100 を 12 (行内の最大キー数) で割り、8.(3) です。したがって、11 キー行の正しい horizontalGap は 8.33/2 になります。(4.165 + 11*8.33 + 4.165 = 99.96 ~ 100)
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="8.33%p"
...
<Row>
<Key android:codes="4304" android:keyLabel="ა" android:horizontalGap="4.165%p" android:keyEdgeFlags="left" />
<Key android:codes="4321" android:keyLabel="ს" />
<Key android:codes="4307" android:keyLabel="დ" />
<Key android:codes="4324" android:keyLabel="ფ" />
<Key android:codes="4306" android:keyLabel="გ" />
<Key android:codes="4336" android:keyLabel="ჰ"/>
<Key android:codes="4335" android:keyLabel="ჯ"/>
<Key android:codes="4313" android:keyLabel="კ"/>
<Key android:codes="4314" android:keyLabel="ლ"/>
<Key android:codes="4329" android:keyLabel="ჩ"/>
<Key android:codes="4319" android:keyLabel="ჟ" android:keyEdgeFlags="right"/>
</Row>
于 2016-12-16T07:25:17.663 に答える