在RelativeLayout中一起使用layout_alignBaseline和layout_alignBottom

Tim*_*mmm 6 layout android relativelayout

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

相对布局示例

那是:

  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>
Run Code Online (Sandbox Code Playgroud)

就像这样:

破碎的RelativeLayout

这是怎么回事?

编辑

Sorry I'm not sure why I changed this example, but in my code I'm actually using an ImageButton, not Button, so the solution can't involve aligning with the baseline of the button - the EditText must be aligned with the bottom (or middle if that is possible) of the button.

Hen*_*rik 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" />
Run Code Online (Sandbox Code Playgroud)