Android软键盘按键中心重力

时间:2015-03-06 03:35:40

标签: java android keyboard

我一直在研究自定义键盘,但我遇到的问题是我无法解决如何解决问题。我正在尝试对中心每一行的所有键进行调整。我的意思是即使一行有9或10或11个键都在中心。这就是我的键盘现在的样子:

http://postimg.org/image/6jy1uyd6x/

我做错了什么? 这也是我的xml文件:

    <?xml version="1.0" encoding="utf-8"?>
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
    android:horizontalGap="1%p"
    android:verticalGap="0.4%p"
    >
    <Row android:keyWidth="9%p" android:keyHeight="75dip" android:rowEdgeFlags="top">
        <Key android:codes="49" android:keyLabel=";" android:keyEdgeFlags="left"/>
        <Key android:codes="50" android:keyLabel="ς"/>
        <Key android:codes="51" android:keyLabel="ε"/>
        <Key android:codes="52" android:keyLabel="ρ"/>
        <Key android:codes="53" android:keyLabel="τ"/>
        <Key android:codes="54" android:keyLabel="υ"/>
        <Key android:codes="55" android:keyLabel="θ"/>
        <Key android:codes="56" android:keyLabel="ι"/>
        <Key android:codes="57" android:keyLabel="ο"/>
        <Key android:codes="48" android:keyLabel="π" android:keyEdgeFlags="right"/>
    </Row>

这是我的keyboard.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<android.inputmethodservice.KeyboardView 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/keyboard"
    android:imeOptions="flagNoFullscreen"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center|fill_horizontal"
    android:layout_alignParentBottom="true"
    android:keyPreviewLayout ="@layout/preview"
    android:keyBackground="@drawable/key_background"
    android:keyTextSize="35sp"
    android:keyTextColor="@color/key_text_color"
    android:keyPreviewHeight="50sp"
    android:shadowRadius="1"
    android:shadowColor="#fff"
    android:padding="0px" android:layout_margin="0px"
    tools:ignore="ResAuto" />

我不想使用%p因为它不是最好的方法来解决这个问题。 提前谢谢!

2 个答案:

答案 0 :(得分:2)

尝试设置第一个键android:keyEdgeFlags="left"并向其添加android:horizontalGap="5%p"

<Row    >
        <Key android:codes="97" android:keyLabel="A" android:horizontalGap="5%p" 
                android:keyEdgeFlags="left"/>
        <Key android:codes="115" android:keyLabel="S"/>
        <Key android:codes="100" android:keyLabel="D"/>
        <Key android:codes="102" android:keyLabel="F"/>
        <Key android:codes="103" android:keyLabel="G"/>
        <Key android:codes="104" android:keyLabel="H"/>
        <Key android:codes="106" android:keyLabel="J"/>
        <Key android:codes="107" android:keyLabel="K"/>
        <Key android:codes="108" android:keyLabel="L" android:keyEdgeFlags="right"/>
    </Row>

答案 1 :(得分:0)

我找到了一个对我有用的解决方案。

Nepster向你建议的是对的,除了我删除了keyEdgeFlags =&#34;对&#34;形成最后一封信。

<Row>
<key android:label="a" codes.... android:keyEdgeFlags="left" android:horizontalGap="5%p"/>
<key "s" .../>
<key "d" .../>
....
<key android:label="l" codes ... />

这给了我这个布局:

this is only one of my example just compiled