在我的布局中获得两个50/50宽度的按钮

时间:2012-12-12 15:56:49

标签: java android layout

我的布局如下图所示。但理想情况下,我希望按钮“保存”和“取消”各自为50%宽度,彼此相邻。似乎无法让他们工作。

有什么建议吗?

enter image description here

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="match_parent" >

    <Button
        android:id="@+id/btnMinus"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="-" />

    <EditText
        android:id="@+id/txtCount"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/btnPlus"
        android:layout_alignParentTop="true"
        android:layout_toLeftOf="@+id/btnPlus"
        android:layout_toRightOf="@+id/btnMinus"
        android:ems="10"
        android:inputType="number" >

        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/btnPlus"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:text="+" />

    <Button
        android:id="@+id/btnGo"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/btnMinus"
        android:layout_toRightOf="@+id/button1"
        android:maxWidth="100dp"
        android:text="Save"
        android:width="100dp" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/btnMinus"
        android:text="Cancel" />

</RelativeLayout>

3 个答案:

答案 0 :(得分:5)

您不应该在此设计中使用RelativeLayout。您应该使用LinearLayout

像这个大纲(非常精简):

<LinearLayout android:orientation=vertical>
    <LinearLayout android:orientation=horizontal>
        <Button android:layout_width=100 /> <!-- Minus -->
        <EditText android:layout_width=0 android:layout_weight=1 />
        <Button android:layout_width=100 /> <!-- Plus -->
    </LinearLayout>
    <LinearLayout android:orientation=horizontal>
        <Button android:layout_width=0 android:layout_weight=1 /> <!-- Cancel -->
        <Button android:layout_width=0 android:layout_weight=1 /> <!-- Save -->
    </LinearLayout>
</LinearLayout>

答案 1 :(得分:1)

您正在寻找android:layout_weight="0.5"。但这仅适用于LinearLayouts。

所以你可以做的是添加一个包含两个按钮的LinearLayout然后设置权重。

答案 2 :(得分:1)

您应该在LinearLayout内使用RelativeLayout仅用于按钮,并为它们提供相同的android:layout_weight(1和1,2和2,如您所愿)。< / p>

相关问题