0

我有一个如下所示的布局。但理想情况下,我希望按钮 Save 和 Cancel 各有 50% 的宽度,彼此相邻。似乎不能让他们工作。

有什么建议么?

在此处输入图像描述

<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>
4

3 回答 3

5

您不应该将 aRelativeLayout用于此设计。您应该使用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>
于 2012-12-12T16:01:42.627 回答
1

您正在寻找android:layout_weight="0.5". 不过,这只适用于 LinearLayouts。

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

于 2012-12-12T15:59:03.577 回答
1

您应该在LinearLayout, 内使用 a ,RelativeLayout仅用于按钮,并给它们相同的值android:layout_weight(1 和 1、2 和 2,如您所愿)。

于 2012-12-12T16:19:52.157 回答