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>

それは次のようになります:

壊れたRelativeLayout

どうしたの?

編集

申し訳ありませんが、この例を変更した理由はわかりませんが、私のコードでは実際にはImageButtonではなくを使用している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 に答える