2016-04-26 3 views
0

Ich versuche, das TextView "Due:" in der Subhead-Zeile im CardView-Bild unten rechts zu justieren. Ich möchte, dass der Text genau links vom Datum "30.11.2010" steht. Layoutcode ist unten. Was fehlt mir hier?Android: Wie richte ich ein TextView richtig?

enter image description here

layout.xml

... 
<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <CheckBox 
     android:id="@+id/chkSelected" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_marginStart="2dp" 
     android:layout_marginLeft="2dp" 
     android:layout_centerVertical="true" 
     android:clickable="false" 
     android:focusable="false" /> 

    <TextView 
     android:id="@+id/cardBlankText2" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_toRightOf="@+id/chkSelected" 
     android:layout_toEndOf="@+id/chkSelected" 
     android:layout_marginLeft="4dp" 
     android:layout_marginStart="4dp" 
     android:textColor="@android:color/black" 
     android:singleLine="true" 
     style="@style/Base.TextAppearance.AppCompat.Headline" /> 

    <TextView 
     android:id="@+id/cardBlankText3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/cardBlankText2" 
     android:layout_toRightOf="@+id/chkSelected" 
     android:layout_toEndOf="@+id/chkSelected" 
     android:gravity="start" 
     android:layout_marginLeft="4dp" 
     android:layout_marginStart="4dp"    
     android:textColor="@android:color/black" 
     android:singleLine="true" 
     style="@style/Base.TextAppearance.AppCompat.Subhead" /> 

    <TextView 
     android:id="@+id/cardBlankText4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@+id/cardBlankText3" 
     android:layout_toEndOf="@+id/cardBlankText3" 
     android:layout_alignParentBottom="true" 
     android:gravity="end" 
     android:text="Due:" 
     android:textColor="@android:color/black" 
     android:singleLine="true" 
     style="@style/Base.TextAppearance.AppCompat.Subhead" /> 

    <TextView 
     android:id="@+id/cardBlankText5" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@+id/cardBlankText4" 
     android:layout_toEndOf="@+id/cardBlankText4" 
     android:layout_alignParentBottom="true" 
     android:gravity="end" 
     android:text="duedate" 
     android:textColor="@android:color/black" 
     android:singleLine="true" 
     style="@style/Base.TextAppearance.AppCompat.Subhead" /> 

    </RelativeLayout> 
+1

android: layout_toLeftOf = "id" –

+0

android: layout_toLeftOf = "@ + id /" – Nilabja

+0

Ich fügte hinzu, "layout_toLeftOf =" @ + if/cardBlankText5" der Textview # 4 Die App stürzt mit logcat. " Kreisförmige Abhängigkeiten können in Relatives Layout nicht existieren. " – AJW

Antwort

1

Versuchen Sie mit dem nachstehenden Code.

Replace in your xml.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <CheckBox 
     android:id="@+id/chkSelected" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_centerVertical="true" 
     android:layout_marginLeft="2dp" 
     android:layout_marginStart="2dp" 
     android:clickable="false" 
     android:focusable="false" /> 

    <TextView 
     android:id="@+id/cardBlankText2" 
     style="@style/Base.TextAppearance.AppCompat.Headline" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_marginLeft="4dp" 
     android:layout_marginStart="4dp" 
     android:layout_toEndOf="@+id/chkSelected" 
     android:layout_toRightOf="@+id/chkSelected" 
     android:singleLine="true" 
     android:textColor="@android:color/black" /> 

    <TextView 
     android:id="@+id/cardBlankText3" 
     style="@style/Base.TextAppearance.AppCompat.Subhead" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/cardBlankText2" 
     android:layout_marginLeft="4dp" 
     android:layout_marginStart="4dp" 
     android:layout_toEndOf="@+id/chkSelected" 
     android:layout_toRightOf="@+id/chkSelected" 
     android:gravity="start" 
     android:singleLine="true" 
     android:textColor="@android:color/black" /> 

    <TextView 
     android:id="@+id/cardBlankText4" 
     style="@style/Base.TextAppearance.AppCompat.Subhead" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_marginRight="5dp" 
     android:layout_toLeftOf="@+id/cardBlankText5" 
     android:gravity="end" 
     android:singleLine="true" 
     android:text="Due:" 
     android:textColor="@android:color/black" 
     android:textSize="20dp" /> 

    <TextView 
     android:id="@+id/cardBlankText5" 
     style="@style/Base.TextAppearance.AppCompat.Subhead" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:layout_marginRight="5dp" 
     android:gravity="end" 
     android:singleLine="true" 
     android:text="duedate" 
     android:textColor="@android:color/black" 
     android:textSize="20dp" /> 

</RelativeLayout> 

Hier Screenshot, wie es mit aboce XML aussieht.

+0

Ok, ich werde das obige versuchen. – AJW

+0

Macht die Reihenfolge der Zeilen einen Unterschied? Ich bemerkte, dass Sie den" Stil "-Code als zweite Zeile für jedes TextView setzen. – AJW

+0

@AJW There is Keine Notwendigkeit, den Code mit 'Linear Layout' zu ändern, versuchen Sie einfach diesen Code. Ich habe einige Änderungen in den Textansichten vorgenommen. –

1

Verwenden Linearlayout, unter Code überprüfen:

<LinearLayout 
      android:id="@+id/LinearLayout1" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center_vertical" 
      android:orientation="horizontal" > 

      <CheckBox 
       android:id="@+id/chkSelected" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="2dp" 
       android:layout_marginStart="2dp" 
       android:clickable="false" 
       android:focusable="false" /> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical" > 

       <TextView 
        android:id="@+id/cardBlankText2" 
        style="@style/Base.TextAppearance.AppCompat.Headline" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_marginLeft="4dp" 
        android:layout_marginStart="4dp" 
        android:singleLine="true" 
        android:text="Test1" 
        android:textColor="@android:color/black" /> 

       <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" > 

        <TextView 
         android:id="@+id/cardBlankText3" 
         style="@style/Base.TextAppearance.AppCompat.Subhead" 
         android:layout_width="0dp" 
         android:layout_height="wrap_content" 
         android:layout_marginLeft="4dp" 
         android:layout_marginStart="4dp" 
         android:layout_weight="1" 
         android:gravity="start" 
         android:singleLine="true" 
         android:text="Below 2" 
         android:textColor="@android:color/black" /> 

        <TextView 
         android:id="@+id/cardBlankText4" 
         style="@style/Base.TextAppearance.AppCompat.Subhead" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:gravity="end" 
         android:singleLine="true" 
         android:text="Due:" 
         android:textColor="@android:color/black" /> 

        <TextView 
         android:id="@+id/cardBlankText5" 
         style="@style/Base.TextAppearance.AppCompat.Subhead" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:gravity="end" 
         android:singleLine="true" 
         android:text="11/30/2100" 
         android:textColor="@android:color/black" /> 
       </LinearLayout> 
      </LinearLayout> 
     </LinearLayout> 

Ausgang:

0

versuchen, es zu tun, indem sie wie diese machen Linearlayout:

<RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 

     <CheckBox 
      android:id="@+id/chkSelected" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:layout_marginStart="2dp" 
      android:layout_marginLeft="2dp" 
      android:layout_centerVertical="true" 
      android:clickable="false" 
      android:focusable="false" /> 

     <TextView 
      android:id="@+id/cardBlankText2" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:layout_toRightOf="@+id/chkSelected" 
      android:layout_toEndOf="@+id/chkSelected" 
      android:layout_marginLeft="4dp" 
      android:layout_marginStart="4dp" 
      android:textColor="@android:color/black" 
      android:singleLine="true" 
      style="@style/Base.TextAppearance.AppCompat.Headline" /> 

     <TextView 
      android:id="@+id/cardBlankText3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/cardBlankText2" 
      android:layout_toRightOf="@+id/chkSelected" 
      android:layout_toEndOf="@+id/chkSelected" 
      android:gravity="start" 
      android:layout_marginLeft="4dp" 
      android:layout_marginStart="4dp" 
      android:textColor="@android:color/black" 
      android:singleLine="true" 
      style="@style/Base.TextAppearance.AppCompat.Subhead" /> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentRight="true"> 

      <TextView 
       android:id="@+id/cardBlankText4" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Due:" 
       android:textColor="@android:color/black" 
       android:singleLine="true" 
       style="@style/Base.TextAppearance.AppCompat.Subhead" /> 

      <TextView 
       android:id="@+id/cardBlankText5" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="10dp" 
       android:text="duedate" 
       android:textColor="@android:color/black" 
       android:singleLine="true" 
       style="@style/Base.TextAppearance.AppCompat.Subhead" /> 

     </LinearLayout> 

    </RelativeLayout> 
0

Für die Textview mit id cardBlankText5, ersetzen

android:layout_toRightOf="@+id/cardBlankText4" 
android:layout_toEndOf="@+id/cardBlankText4" 

mit

android:layout_alignParentRight="true" 
android:layout_alignParentEnd="true" 

Und für die Textview mit id cardBlankText4, ersetzen

android:layout_toRightOf="@+id/cardBlankText3" 
android:layout_toEndOf="@+id/cardBlankText3" 

mit

android:layout_toLeftOf="@+id/cardBlankText5" 
android:layout_toStartOf="@+id/cardBlankText5" 
+0

Ich habe es versucht. Der TextView # 4 wird nicht angezeigt. Das "Due:" fehlt. – AJW

2
just change **android:gravity** with 
    **android:layout_gravity**. 
    Your requirement should be done. 
+0

Für jede der TextViews oder nur die cardBlankText4? – AJW

+0

nur cardBlankText4 ... –

0

// Sie Ausrichtung von Datum und datestring von der linken Textview Ausrichtung gegeben, dass der Grund, Ihre Due: string Textview Start von links Sie können dieses Problem leicht lösen, indem Sie die richtige Ausrichtung für das Datum und Fälligkeit: Text textView nach Datum angeben. // Ersetzen Sie diesen Code durch Ihren alten Code. Hoffe, es wird für Sie hilfreich sein.

<?xml version="1.0" encoding="utf-8"?> 


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

    <CheckBox 
     android:id="@+id/chkSelected" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_centerVertical="true" 
     android:layout_marginLeft="2dp" 
     android:layout_marginStart="2dp" 
     android:clickable="false" 
     android:focusable="false" /> 

    <TextView 
     android:id="@+id/cardBlankText2" 
     style="@style/Base.TextAppearance.AppCompat.Headline" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_marginLeft="4dp" 
     android:layout_marginStart="4dp" 
     android:layout_toEndOf="@+id/chkSelected" 
     android:layout_toRightOf="@+id/chkSelected" 
     android:singleLine="true" 
     android:textColor="@android:color/black" /> 

    <TextView 
     android:id="@+id/cardBlankText3" 
     style="@style/Base.TextAppearance.AppCompat.Subhead" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/cardBlankText2" 
     android:layout_marginLeft="4dp" 
     android:layout_marginStart="4dp" 
     android:layout_toEndOf="@+id/chkSelected" 
     android:layout_toRightOf="@+id/chkSelected" 
     android:gravity="start" 
     android:singleLine="true" 
     android:textColor="@android:color/black" /> 

    <TextView 
     android:id="@+id/cardBlankText4" 
     style="@style/Base.TextAppearance.AppCompat.Subhead" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_marginRight="5dp" 
     android:layout_toLeftOf="@+id/cardBlankText5" 
     android:gravity="end" 
     android:singleLine="true" 
     android:text="Due:" 
     android:textColor="@android:color/black" /> 

    <TextView 
     android:id="@+id/cardBlankText5" 
     style="@style/Base.TextAppearance.AppCompat.Subhead" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:layout_marginRight="5dp" 
     android:gravity="end" 
     android:singleLine="true" 
     android:text="duedate" 
     android:textColor="@android:color/black" /> 

</RelativeLayout>