6

我试图得到一个看起来像这样的布局:

相对布局示例

那是:

  1. TextView与父级左侧和顶部对齐(带边距)。
  2. EditText左侧的TextView, 的右侧Button和基线对齐的TextView
  3. Button父右侧对齐(只有右边距)。这是损坏的部分:底部对齐到EditText.

无论出于何种原因,它都不起作用。这是我希望工作的代码:

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

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="32dp"
        android:layout_marginTop="32dp"
        android:text="Text:" />

    <EditText
        android:id="@+id/edit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/text"
        android:layout_toLeftOf="@+id/button"
        android:layout_toRightOf="@+id/text"
        android:ems="10" >

        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignBottom="@+id/edit"
        android:layout_marginRight="32dp"
        android:text="Ok" />

</RelativeLayout>

结果是这样的:

损坏的相对布局

这是怎么回事?

编辑

抱歉,我不确定为什么要更改此示例,但在我的代码中,我实际上使用的是ImageButton, not Button,因此解决方案不能涉及与按钮的基线EditText对齐 - 必须与底部(或中间)对齐如果可能的话)的按钮。

4

2 回答 2

4

尝试这个..

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

<TextView
    android:id="@+id/text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="32dp"
    android:layout_marginTop="32dp"
    android:text="Text:" />


<EditText
    android:id="@+id/edit"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/text"
    android:layout_toLeftOf="@+id/button"
    android:layout_toRightOf="@+id/text"
    android:ems="10" >

    <requestFocus />
</EditText>

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/edit"
    android:layout_alignBottom="@+id/edit"
    android:layout_alignParentRight="true"
    android:layout_marginRight="30dp"
    android:text="Ok" />

于 2012-10-22T11:59:51.690 回答
1

似乎是一个影响 alignBaseline 被用作其他孩子的锚的错误。https://code.google.com/p/android/issues/detail?id=73697&thanks=73697

于 2014-07-17T00:36:36.417 回答