2016-07-13 4 views
0

Ich versuche, ein CheckBox an der rechten Seite eines EditText auszurichten. Das Problem ist, dass ich eine zirkuläre Abhängigkeit habe, wenn ich es auf meine Art mache.AlignBaseLine aber vermeiden kreisförmige Abhängigkeiten in Android-Layout

Ich möchte die Kontrollkästchen Powerbox und Landline an der BaseLine der EditTexts ausrichten.

screenshot

Derzeit verwende ich diesen Code

 <CheckBox 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/txt_elec_box" 
      android:id="@+id/electricityBox" 
      android:layout_below="@id/streetText" 
      android:layout_alignParentEnd="true" 
      android:layout_alignParentRight="true" 
      android:paddingTop="5dp" /> 

     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"     
      android:id="@+id/streetNumText" 
      android:layout_below="@id/streetText" 
      android:layout_alignStart="@id/electricityBox" 
      android:layout_alignLeft="@id/electricityBox" 
      android:layout_alignParentStart="true" 
      android:layout_alignParentLeft="true" 
      android:hint="@string/txt_street_check" 
      android:layout_toLeftOf="@id/electricityBox" /> 

     .... 

     <CheckBox 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/txt_landline" 
      android:id="@+id/landlineBox" 
      android:layout_below="@id/familyNameText" 
      android:layout_alignParentEnd="true" 
      android:layout_alignParentRight="true"     
      android:paddingTop="5dp" /> 

     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"     
      android:id="@+id/phoneNumberText" 
      android:layout_below="@id/familyNameText" 
      android:layout_alignStart="@id/landlineBox" 
      android:layout_alignLeft="@id/landlineBox" 
      android:layout_alignParentStart="true" 
      android:layout_alignParentLeft="true" 
      android:layout_toLeftOf="@id/landlineBox" /> 

Wie Sie habe ich sehen

android:paddingTop="5dp" 

auf die Kontrollkästchen, um sie am Ende ein wenig mehr sein, aber ich will Wollen Sie tun, ist dies

android:layout_alignBaseline="@id/phoneNumberText" 

aber dann entsteht eine zirkuläre Abhängigkeit.

Ich möchte auch, dass die Checkboxen auch horizontal ausgerichtet sind, wenn dies auf eine nicht-hartcodierte Breite möglich ist (Die perfekte Ausrichtung im Screenshot erfolgt zufällig mit der englischen Version meiner App).

+0

Sie können die Reihenfolge umkehren und setzen Sie den '' landlineBox' toRightOf' die 'phoneNumberText' –

+0

Ja, aber dann ist das Kontrollkästchen Text in zwei Zeilen aufgeteilt, wenn die Anzeigegröße nicht groß genug ist. Ich möchte, dass der EditText so viel Platz wie möglich beansprucht, aber nicht mehr als die Checkboxen brauchen –

Antwort

1

Stellen Sie zunächst Ihre Eltern Layout Linearlayout sein verwenden, dann für jede Zeile Element in Ihrem Layout, es ist ein RelativeLayout machen. Etwas wie folgt aus:

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/streetText"> 

    <EditText 
     android:id="@+id/streetNumText" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:layout_toLeftOf="@id/electricityBox" 
     android:hint="@string/txt_street_check" /> 

    <CheckBox 
     android:id="@+id/electricityBox" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentEnd="true" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true" 
     android:text="@string/txt_elec_box" /> 

</RelativeLayout> 
+0

Es funktioniert. Die vertikale Ausrichtung ist immer noch von, aber ich denke, das ist eine andere Geschichte. Vielen Dank. –

0

sie in einem Linearlayout Wickeln und Schwerkraft (oder layout_gravity) = „center“

+0

Nicht für mich arbeiten. Ich möchte links Ausrichtung der EditTexts. Auch die Checkbox-Texte werden abgeschnitten. –

Verwandte Themen