Android RelativeLayout的layout_alignTop是否包含填充/边距?

时间:2017-02-17 21:57:10

标签: android relativelayout

我正在尝试使用RelativeLayout设计一个键盘。 每次我尝试使用layout_alignTop或者底部或右边...我看到块没有完全对齐,好像android会考虑对齐对象的填充或打开边距。 在这里,我的" Go"键跨越两条线,我不能很好地对齐。与我的顶级" X"相同键。

键盘与Go键未对齐

Keyboard with Go Key not aligned

这是我的布局:

 <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        >

        <TextView
            android:text="TextView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/keybord_text_label"
            android:layout_alignRight="@+id/kb_b3"
            android:layout_alignLeft="@+id/kb_b1"
            />

        <TextView
            android:text="TextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/keyboard_text_value"
            android:layout_below="@+id/keybord_text_label"
            android:layout_alignRight="@+id/kb_b3"
            android:layout_alignLeft="@+id/kb_b1"
       />

        <Button
            android:text="X"
            style="@style/keyboard_btn"
            android:id="@+id/kb_bdel"
            android:layout_toRightOf="@+id/keyboard_text_value"
            android:layout_alignBottom="@+id/keyboard_text_value"
            />


        <Button
            android:text="1"
            style="@style/keyboard_btn"
            android:id="@+id/kb_b1"
            android:layout_below="@+id/keyboard_text_value"/>
        <Button
            android:text="2"
            style="@style/keyboard_btn"
            android:id="@+id/kb_b2"
            android:layout_toRightOf="@+id/kb_b1"
            android:layout_below="@+id/keyboard_text_value"/>
        <Button
            android:text="3"
            style="@style/keyboard_btn"
            android:id="@+id/kb_b3"
            android:layout_toRightOf="@+id/kb_b2"
            android:layout_below="@+id/keyboard_text_value"/>

        <Button
        android:text="4"
        style="@style/keyboard_btn"
        android:id="@+id/kb_b4"
            android:layout_below="@+id/kb_b1"/>
        <Button
            android:text="5"
            style="@style/keyboard_btn"
            android:id="@+id/kb_b5"
            android:layout_toRightOf="@+id/kb_b4"
            android:layout_below="@+id/kb_b1"/>
        <Button
            android:text="6"
            style="@style/keyboard_btn"
            android:id="@+id/kb_b6"
            android:layout_toRightOf="@+id/kb_b5"
            android:layout_below="@+id/kb_b1"/>


        <Button
                android:text="7"
                style="@style/keyboard_btn"
                android:id="@+id/kb_b7"
                android:layout_below="@+id/kb_b4"/>
            <Button
                android:text="8"
                style="@style/keyboard_btn"
                android:id="@+id/kb_b8"
                android:layout_toRightOf="@+id/kb_b7"
                android:layout_below="@+id/kb_b4"/>
            <Button
                android:text="9"
                style="@style/keyboard_btn"
                android:id="@+id/kb_b9"
                android:layout_toRightOf="@+id/kb_b8"
                android:layout_below="@+id/kb_b4"/>

        <Button
                android:text="0"
                style="@style/keyboard_btn"
                android:id="@+id/kb_b0"
                android:layout_below="@+id/kb_b7"
                />
            <Button
                android:text="+"
                style="@style/keyboard_btn"
                android:id="@+id/kb_bplus"
                android:layout_toRightOf="@+id/kb_b0"
                android:layout_below="@+id/kb_b7"
                />
            <Button
                android:text="-"
                style="@style/keyboard_btn"
                android:id="@+id/kb_bminus"
                android:layout_toRightOf="@+id/kb_bplus"
                android:layout_below="@+id/kb_b7"
                />

        <Button
            android:text="X"
            style="@style/keyboard_btn"
            android:id="@+id/kb_bback"

            android:layout_toRightOf="@+id/kb_b3"
            android:layout_below="@+id/kb_bdel" />

        <Button
            android:text="GO"
            style="@style/keyboard_btn"
            android:id="@+id/kb_bgo"
            android:layout_alignTop="@+id/kb_b6"
            android:layout_toRightOf="@+id/kb_b6"
            android:layout_alignBottom="@+id/kb_bminus" />





    <Button
        android:text=".00"
        style="@style/keyboard_btn"
        android:id="@+id/kb_b00"
        android:layout_below="@+id/kb_b0"
         />


    <Button
        android:text=".25"
        style="@style/keyboard_btn"
        android:id="@+id/kb_b25"
        android:layout_toRightOf="@+id/kb_b00"
        android:layout_below="@+id/kb_bplus"
        />
    <Button
        android:text=".50"
        style="@style/keyboard_btn"
        android:id="@+id/kb_b50"
        android:layout_toRightOf="@+id/kb_b25"
        android:layout_below="@+id/kb_bminus"
      />

    <Button
        android:text=".75"
        style="@style/keyboard_btn"
        android:id="@+id/kb_b75"
        android:layout_toRightOf="@+id/kb_b50"
        android:layout_below="@+id/kb_bgo"
        />
    </RelativeLayout>

这是我的风格

 <style name="keyboard_btn" parent="@android:style/Widget.Button">
    <item name="android:textSize">12sp</item>
    <item name="android:textStyle">bold</item>
    <item name="android:layout_gravity">center</item>
    <item name="android:gravity">center</item>
    <item name="android:layout_margin">2dp</item>
    <item name="android:layout_height">40dp</item>
    <item name="android:layout_width">40dp</item>
    <item name="android:textColor">#FFFFFF</item>
    <item name="android:background">@drawable/keyboard_btn</item>
</style>

我也试过TableLayout和GridLayout,情况更糟。

欢迎提供帮助。

感谢。

2 个答案:

答案 0 :(得分:0)

我还没有对此进行过测试,但我相信使用layout_belowlayout_above可能会有更好的效果:

    <Button
        android:text="GO"
        style="@style/keyboard_btn"
        android:id="@+id/kb_bgo"
        android:layout_below="@+id/kb_b1"
        android:layout_toRightOf="@+id/kb_b6"
        android:layout_above="@+id/kb_b00" />

答案 1 :(得分:0)

非常感谢它解决了我的问题。

如果它可以帮助某人:

结果如下

Keyboard all well aligned

这是代码

 <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        >

        <!-- TEXTBOX -->
        <TextView
            android:text="TextView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/keybord_text_label"
            android:layout_alignRight="@+id/kb_b3"
            android:layout_alignLeft="@+id/kb_b1"
            />

        <TextView
            android:text="TextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/keyboard_text_value"
            android:layout_below="@+id/keybord_text_label"
            android:layout_alignRight="@+id/kb_b3"
            android:layout_alignLeft="@+id/kb_b1"
       />

        <Button
            android:text="X"
            style="@style/keyboard_btn"
            android:id="@+id/kb_bdel"
            android:layout_toRightOf="@+id/kb_b3"
            android:layout_above="@+id/kb_sep"
            />


        <!-- SEPARATOR -->
        <View
            android:id="@+id/kb_sep"
            android:layout_width="match_parent"
            android:layout_height="5dip"
            android:layout_below="@+id/keyboard_text_value"
            android:layout_alignEnd="@+id/kb_bdel"
            android:layout_alignRight="@+id/kb_bdel"
            android:layout_alignStart="@+id/kb_b1"
            android:layout_alignLeft="@+id/kb_b1"
            android:background="#ffffffff"/>


        <!-- LINE 1 -->
        <Button
            android:text="1"
            style="@style/keyboard_btn"
            android:id="@+id/kb_b1"
            android:layout_below="@+id/kb_sep"/>
        <Button
            android:text="2"
            style="@style/keyboard_btn"
            android:id="@+id/kb_b2"
            android:layout_toRightOf="@+id/kb_b1"
            android:layout_below="@+id/kb_sep"/>
        <Button
            android:text="3"
            style="@style/keyboard_btn"
            android:id="@+id/kb_b3"
            android:layout_toRightOf="@+id/kb_b2"
            android:layout_below="@+id/kb_sep"/>

        <Button
            android:text="<"
            style="@style/keyboard_btn"
            android:id="@+id/kb_bback"
            android:layout_toRightOf="@+id/kb_b3"
            android:layout_below="@+id/kb_sep" />

        <!-- LINE 2 -->
        <Button
            android:text="4"
            style="@style/keyboard_btn"
            android:id="@+id/kb_b4"
            android:layout_below="@+id/kb_b1"/>

        <Button
            android:text="5"
            style="@style/keyboard_btn"
            android:id="@+id/kb_b5"
            android:layout_toRightOf="@+id/kb_b4"
            android:layout_below="@+id/kb_b1"/>

        <Button
            android:text="6"
            style="@style/keyboard_btn"
            android:id="@+id/kb_b6"
            android:layout_toRightOf="@+id/kb_b5"
            android:layout_below="@+id/kb_b1"/>

        <Button
            android:text="GO"
            style="@style/keyboard_btn"
            android:id="@+id/kb_bgo"
            android:layout_below="@+id/kb_bback"
            android:layout_above="@+id/kb_b75"
            android:layout_toRightOf="@+id/kb_b6"/>

        <!-- LINE 3 -->
        <Button
                android:text="7"
                style="@style/keyboard_btn"
                android:id="@+id/kb_b7"
                android:layout_below="@+id/kb_b4"/>
            <Button
                android:text="8"
                style="@style/keyboard_btn"
                android:id="@+id/kb_b8"
                android:layout_toRightOf="@+id/kb_b7"
                android:layout_below="@+id/kb_b4"/>
            <Button
                android:text="9"
                style="@style/keyboard_btn"
                android:id="@+id/kb_b9"
                android:layout_toRightOf="@+id/kb_b8"
                android:layout_below="@+id/kb_b4"/>

        <!-- LINE 4 -->
        <Button
                android:text="0"
                style="@style/keyboard_btn"
                android:id="@+id/kb_b0"
                android:layout_below="@+id/kb_b7"
                />
            <Button
                android:text="+"
                style="@style/keyboard_btn"
                android:id="@+id/kb_bplus"
                android:layout_toRightOf="@+id/kb_b0"
                android:layout_below="@+id/kb_b7"
                />
            <Button
                android:text="-"
                style="@style/keyboard_btn"
                android:id="@+id/kb_bminus"
                android:layout_toRightOf="@+id/kb_bplus"
                android:layout_below="@+id/kb_b7"
                />

        <!-- LINE 5 -->
            <Button
                android:text=".00"
                style="@style/keyboard_btn"
                android:id="@+id/kb_b00"
                android:layout_below="@+id/kb_b0"
                 />


            <Button
                android:text=".25"
                style="@style/keyboard_btn"
                android:id="@+id/kb_b25"
                android:layout_toRightOf="@+id/kb_b00"
                android:layout_below="@+id/kb_bplus"
                />
            <Button
                android:text=".50"
                style="@style/keyboard_btn"
                android:id="@+id/kb_b50"
                android:layout_toRightOf="@+id/kb_b25"
                android:layout_below="@+id/kb_bminus"
              />

            <Button
                android:text=".75"
                style="@style/keyboard_btn"
                android:id="@+id/kb_b75"
                android:layout_toRightOf="@+id/kb_b50"
                android:layout_below="@+id/kb_bminus"
                />
    </RelativeLayout>