我正在尝试为Android创建自定义键盘.我使用软键盘示例应用程序作为起点.我的问题是我无法在键盘中居中,而我在网上找到的其他样本显然有效.
我的XML文件如下所示:
<?xml version="1.0" encoding="utf-8"?><Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:horizontalGap="@dimen/horizontal_gap"
android:keyHeight="@dimen/key_height"
android:keyWidth="10%p"
android:verticalGap="@dimen/vertical_gap" >
<Row>
<Key
android:codes="49"
android:keyEdgeFlags="left"
android:keyLabel="1" />
<Key
android:codes="50"
android:keyLabel="2" />
<Key
android:codes="51"
android:keyLabel="3" />
<Key
android:codes="52"
android:keyLabel="4" />
<Key
android:codes="53"
android:keyLabel="5" />
<Key
android:codes="54"
android:keyLabel="6" />
<Key
android:codes="55"
android:keyLabel="7" />
<Key
android:codes="56"
android:keyLabel="8" />
<Key
android:codes="57"
android:keyLabel="9" />
<Key
android:codes="48"
android:keyEdgeFlags="right"
android:keyLabel="0" />
</Row>
<Row>
<Key
android:codes="1"
android:keyEdgeFlags="left"
android:keyLabel="q" />
<Key
android:codes="2"
android:keyLabel="w" />
<Key
android:codes="3"
android:keyLabel="e" />
<Key
android:codes="4"
android:keyLabel="r" />
<Key
android:codes="5"
android:keyLabel="t" />
<Key
android:codes="6"
android:keyLabel="y" />
<Key
android:codes="-5"
android:isRepeatable="true"
android:keyEdgeFlags="right"
android:keyIcon="@drawable/sym_keyboard_delete" />
</Row>
<Row>
<Key
android:codes="99"
android:keyEdgeFlags="left"
android:keyLabel="c" />
<Key
android:codes="32"
android:isRepeatable="true"
android:keyIcon="@drawable/sym_keyboard_space"
android:keyWidth="30%p" />
<Key
android:codes="63"
android:keyLabel="\?"
android:keyWidth="@dimen/small_buttons" />
<Key
android:codes="33"
android:keyLabel="!"
android:keyWidth="@dimen/small_buttons" />
<Key
android:codes="46"
android:keyLabel="."
android:keyWidth="@dimen/small_buttons" />
<Key
android:codes="44"
android:keyEdgeFlags="right"
android:keyLabel=","
android:keyWidth="@dimen/small_buttons" />
</Row></Keyboard>
为了使第二行和第三行居中,缺少什么?
提前致谢.
解决方法:
顶行有10个键,而第二和第三行分别只有7和6个键.由于keyWidth定义为10%,因此这10个键填充整个空间.但是,分别具有7和6个键的第二行和第三行仅填充整个空间的70%和60%,这意味着它们看起来与左侧对齐,右侧有空置空间.为了使键位于行的中间,第二行的第一个键应具有15%的水平间隙,第三行为20%,以便将左侧移动到中心.
请更正第二行和第三行的第一部分,如下所示:
<Row>
<Key
android:horizontalGap="15%"
android:codes="1"
android:keyEdgeFlags="left"
android:keyLabel="q" />
......
<Row>
<Key
android:horizontalGap="20%"
android:codes="99"
android:keyEdgeFlags="left"
android:keyLabel="c" />