相对视图中的Android按钮 - 按钮填充可用宽度

时间:2015-03-08 20:03:53

标签: android layout android-relativelayout

我有一个标有1到9的9个按钮,配置为3乘3计算器。这些都包含在相对视图中。我希望按钮变得比它们需要的更宽,并填充相对视图的可用宽度。相对视图设置为填充父级。我还想在按钮之间留下至少一个小间隙,这样它们就不会碰到了。解决这个问题的最佳方式是什么?



<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/btn0"
        android:id="@+id/btn0"
        android:layout_above="@+id/btnStart"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:onClick="btnNumber_Click"
        android:tag="0" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/btn1"
        android:id="@+id/btn1"
        android:layout_above="@+id/btn0"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:tag="1"
        android:onClick="btnNumber_Click" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/btn2"
        android:id="@+id/btn2"
        android:tag="2"
        android:onClick="btnNumber_Click"
        android:layout_above="@+id/btnNegative"
        android:layout_alignLeft="@+id/btnNegative"
        android:layout_alignStart="@+id/btnNegative" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/btn3"
        android:id="@+id/btn3"
        android:layout_above="@+id/btn0"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:tag="3"
        android:onClick="btnNumber_Click" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/btn4"
        android:id="@+id/btn4"
        android:layout_above="@+id/btn1"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:tag="4"
        android:onClick="btnNumber_Click" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/btn5"
        android:id="@+id/btn5"
        android:tag="5"
        android:onClick="btnNumber_Click"
        android:layout_below="@+id/btn8"
        android:layout_alignLeft="@+id/btn2"
        android:layout_alignStart="@+id/btn2" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/btn6"
        android:id="@+id/btn6"
        android:layout_alignBottom="@+id/btn5"
        android:layout_alignLeft="@+id/btn3"
        android:layout_alignStart="@+id/btn3"
        android:tag="6"
        android:onClick="btnNumber_Click" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/btn7"
        android:id="@+id/btn7"
        android:layout_above="@+id/btn4"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:tag="7"
        android:onClick="btnNumber_Click" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/btn8"
        android:id="@+id/btn8"
        android:tag="8"
        android:onClick="btnNumber_Click"
        android:layout_alignTop="@+id/btn7"
        android:layout_alignLeft="@+id/btn5"
        android:layout_alignStart="@+id/btn5" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/btn9"
        android:id="@+id/btn9"
        android:layout_alignTop="@+id/btn8"
        android:layout_alignLeft="@+id/btn6"
        android:layout_alignStart="@+id/btn6"
        android:tag="9"
        android:onClick="btnNumber_Click" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/btnEnter"
        android:id="@+id/btnEnter"
        android:layout_alignTop="@+id/btn0"
        android:layout_alignRight="@+id/btn3"
        android:layout_alignEnd="@+id/btn3"
        android:onClick="btnEnter_Click"
        android:layout_alignLeft="@+id/btn3"
        android:layout_alignStart="@+id/btn3"
        android:singleLine="false" />
&#13;
&#13;
&#13;

谢谢,

大卫

1 个答案:

答案 0 :(得分:0)

这就是布局的方式,

并将margin设置为所有按钮以在它们之间留出一些空格。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">

<LinearLayout
    android:layout_weight="1"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:orientation="horizontal">

    <Button
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="match_parent" />
    <Button
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="match_parent" />
    <Button
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="match_parent" />

</LinearLayout>
<LinearLayout
    android:layout_weight="1"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:orientation="horizontal">

    <Button
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="match_parent" />
    <Button
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="match_parent" />
    <Button
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="match_parent" />

</LinearLayout>
<LinearLayout
    android:layout_weight="1"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:orientation="horizontal">

    <Button
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="match_parent" />
    <Button
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="match_parent" />
    <Button
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="match_parent" />

</LinearLayout>
</LinearLayout>
相关问题