RelativeLayout:按钮按下屏幕外的其他按钮

时间:2012-11-30 17:24:41

标签: android layout button relative

我试图让三个按钮彼此相邻,左边的一个和右边的一个是小的,中间的一个应该填满宽度的其余部分 - 2x2dp(=边距)。 我编写了以下代码,但它一直在屏幕上按下我的右键,有关如何解决此问题的任何想法?可能有一种方法可以保留左右一个的权利吗?谢谢!

<RelativeLayout
            android:id="@+id/rl"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_marginBottom="10dp" >

            <Button
                android:id="@+id/bPreviousQuestion"
                android:layout_width="42dp"
                android:layout_height="42dp"
                android:background="#c8c8c8"
                android:text="&lt;"
                android:textColor="#ffffff"
                android:textSize="20dp"
                />

            <Button
                android:id="@+id/bBack"
                android:layout_width="fill_parent"
                android:layout_height="42dp"
                android:layout_toRightOf="@+id/bPreviousQuestion"
                android:background="#c8c8c8"
                android:text="Go Back"
                android:textColor="#ffffff"
                android:textSize="20dp"
                android:layout_marginLeft="2dp"
                android:layout_marginRight="2dp"  />

            <Button
                android:id="@+id/bNextQuestion"
                android:layout_width="42dp"
                android:layout_height="42dp"
                android:layout_toRightOf="@+id/bBack"
                android:background="#c8c8c8"
                android:text="&gt;"
                android:textColor="#ffffff"
                android:textSize="20dp" />
        </RelativeLayout>

5 个答案:

答案 0 :(得分:3)

尝试添加:

android:layout_toLeftOf="@+id/bNextQuestion"

到你的“后退”按钮。在“下一步”中删除此行:

android:layout_toRightOf="@+id/bBack"

并添加:

android:layout_alignParentRight="true"

答案 1 :(得分:2)

试试这个:

将{Previous}设置为对齐的父级左侧,宽度为42dp。

将{Next}设置为对齐的父右对齐,宽度为42dp。

将{Back}设置为Prev的右侧,并将fill_parent的宽度设置为Next的左侧。

如果我正确地覆盖了布局,填充按钮和后退按钮。

答案 2 :(得分:1)

使用LinearLayout代替RelativeLayout

<LinearLayout
    android:id="@+id/rl"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="10dp"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/bPreviousQuestion"
        android:layout_width="42dp"
        android:layout_height="42dp"
        android:background="#c8c8c8"
        android:text="&lt;"
        android:textColor="#ffffff"
        android:textSize="20dp" />

    <Button
        android:id="@+id/bBack"
        android:layout_width="fill_parent"
        android:layout_height="42dp"
        android:layout_marginLeft="2dp"
        android:layout_marginRight="2dp"
        android:layout_weight="1"
        android:background="#c8c8c8"
        android:text="Go Back"
        android:textColor="#ffffff"
        android:textSize="20dp" />

    <Button
        android:id="@+id/bNextQuestion"
        android:layout_width="42dp"
        android:layout_height="42dp"
        android:background="#c8c8c8"
        android:text=">"
        android:textColor="#ffffff"
        android:textSize="20dp" />
</LinearLayout>

答案 3 :(得分:0)

你的第二个按钮的layout_width是“fill_parent”

答案 4 :(得分:0)

对于你的第二个按钮是中间按钮,你使用的是android:layout_width =“fill_parent”。而不是使用android:layout_width =“42dp”,那么你将看到你的第三个