Android:在RelativeLayout中并排放置两个按钮

时间:2015-07-29 09:26:04

标签: android xml android-layout

我有一个RelativeLayout,底部有两个并排的按钮。我的目标是将这些按钮并排放置,但填充屏幕宽度。有人能告诉我怎么做吗?

我的布局文件是:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

    <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Left Button"
    android:id="@+id/button"
    android:layout_alignParentTop="false"
    android:layout_weight="1"
    android:layout_marginTop="77dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentBottom="true"
    android:layout_alignParentEnd="false"
    android:layout_alignParentStart="false" />

    <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Right Button"
    android:id="@+id/button2"
    android:layout_weight="1"
    android:layout_toRightOf="@id/button"
    android:layout_alignParentBottom="true"
    android:layout_alignParentEnd="false"
    android:layout_alignParentStart="false" />
</RelativeLayout>

5 个答案:

答案 0 :(得分:12)

将您的按钮放在水平方向的LinearLayout中。并为按钮分配重量。

这是您的代码,但经过修改。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:tools="http://schemas.android.com/tools"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:paddingBottom="@dimen/activity_vertical_margin"
            android:paddingLeft="@dimen/activity_horizontal_margin"
            android:paddingRight="@dimen/activity_horizontal_margin"
            android:paddingTop="@dimen/activity_vertical_margin"
            tools:context=".MainActivity">\

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:orientation="horizontal">

    <Button
        android:id="@+id/button"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="false"
        android:layout_weight="0.5"
        android:text="Left Button"
        />

    <Button
        android:id="@+id/button2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.5"
        android:text="Right Button"
        />
</LinearLayout>

答案 1 :(得分:9)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity">

<TextView
    android:id="@+id/dummyView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true" />

<Button
    android:id="@+id/button"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_toLeftOf="@id/dummyView"
    android:text="Left Button" />

<Button
    android:id="@+id/button2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@id/dummyView"
    android:text="Right Button" />

答案 2 :(得分:1)

这非常简单,如果您在调色板中看到按钮,则可以看到属性:&#34; layout:alignComponent&#34;对齐RelativeLayout中的所有视图非常有用;因此,您可以将button2的左侧与button1的右侧对齐...简单...不需要LinearLayout ......

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Right Button"
    android:id="@+id/button2"
    android:layout_weight="1"
    android:layout_toRightOf="@+id/button"
    android:layout_alignParentBottom="false"
    android:layout_alignParentEnd="false"
    android:layout_alignParentStart="false" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Left Button"
    android:id="@+id/button"
    android:layout_alignParentTop="false"
    android:layout_weight="1"
    android:layout_alignParentLeft="false"
    android:layout_alignParentBottom="false"
    android:layout_alignParentEnd="false"
    android:layout_alignParentStart="false"
    android:layout_alignTop="@+id/button2" />

答案 3 :(得分:1)

  

我的目标是将这些按钮并排放置,但填充屏幕宽度。

如果这是你想要的,请使用LinearLayout android:orientation="horizontal",按钮使用android:layout_width="0dp"android:weight="1",以便占用相同的空间每个按钮。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"        
    android:layout_width="match_parent"
    android:layout_height="match_parent"     android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" 
android:orientation="horizontal"
tools:context=".MainActivity">

    <Button
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:text="Left Button"
    android:id="@+id/button"
    android:layout_alignParentTop="false"
    android:layout_weight="1"
    android:layout_marginTop="77dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentBottom="true"
    android:layout_alignParentEnd="false"
    android:layout_alignParentStart="false" />

    <Button
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:text="Right Button"
    android:id="@+id/button2"
    android:layout_weight="1"
    android:layout_toRightOf="@id/button"
    android:layout_alignParentBottom="true"
    android:layout_alignParentEnd="false"
    android:layout_alignParentStart="false" />
</RelativeLayout>

答案 4 :(得分:0)

试试这个。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity" >

    <TableRow
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:weightSum="2" >

        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Left Button"
            android:id="@+id/button"
            android:layout_alignParentTop="false"
            android:layout_marginTop="77dp"
            android:layout_alignParentLeft="true"
            android:layout_alignParentBottom="true"
            android:layout_alignParentEnd="false"
            android:layout_alignParentStart="false" />


        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="Right Button"
            android:id="@+id/button2"
            android:layout_weight="1"
            android:layout_toRightOf="@id/button"
            android:layout_alignParentBottom="true"
            android:layout_alignParentEnd="false"
            android:layout_alignParentStart="false" />

    </TableRow>
</RelativeLayout>