2012-10-22 3 views
6

Ich versuche, ein Layout zu erhalten, die etwa wie folgt aussieht:layout_alignBaseline und layout_alignBottom in RelativeLayout Mit zusammen

Relative layout example

Das heißt:

  1. TextView ausgerichtet (mit Margins) zu Eltern links und oben.
  2. Eine EditText auf der linken Seite der TextView, auf der rechten Seite der Button und Baseline-ausgerichtet mit der TextView.
  3. A Button ausgerichtet (mit nur einem rechten Rand) an das übergeordnete Recht. Und hier ist der gebrochene Teil: unten auf die EditText ausgerichtet.

Aus irgendeinem Grund funktioniert es nicht. Hier ist der Code, den ich erwarten würde zu arbeiten:

<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> 

Das kommt heraus wie folgt aus:

Broken RelativeLayout

Was ist los?

bearbeiten

Leider bin ich nicht sicher, warum ich dieses Beispiel geändert, aber ich verwende eigentlich ein ImageButton in meinem Code, nicht Button, so beinhaltet die Lösung kann nicht mit der Basislinie der Schaltfläche Ausrichten - Die EditText muss mit der unteren (oder Mitte, wenn das möglich ist) der Taste ausgerichtet werden.

+0

gibt es vielleicht einen Rand von einem Thema? – njzk2

+0

Nein ............ – Timmmm

Antwort

4

die Sie interessieren ..

<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" /> 

+0

Eigentlich funktioniert das aber nur, weil der Button eine Grundlinie hat, ich habe ein schlechtes Beispiel in meiner Frage benutzt (sorry!) - eigentlich benutze ich einen 'ImageButton', nicht ein 'Knopf'. – Timmmm

+0

also was? Es funktioniert auch mit ImageButton. alignBaseline + alignBottom befindet sich immer am unteren Ende einer Zeile – AndrewS