8

カスタム キーボードを作成する場合、キーの先頭のスペース (左側のスペース) をandroid:horizontalGap="6.25%p.
取得するには、[末尾のスペース (右側のスペース) を取得するにはどうすればよいですか?] を使用します。

4

4 に答える 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 キー行の正しい horizo​​ntalGap は 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 に答える