2016-12-08 3 views
1

Ich muss 2 TextViews in einer Zeile anpassen. Ich habe versucht, LinearLayout zu verwenden, und jetzt ist mein bester Ansatz, RelativeLayout zu verwenden. Hier können Sie XML für sieFit 2 TextViews

 <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:layout_gravity="start" 
     android:visibility="visible"> 

     <TextView 
      android:id="@+id/partner_full_name" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="left" 
      android:layout_alignParentLeft="true" 
      android:textColor="@color/black" 
      android:maxLines="2" 
      android:textSize="12sp" 
      android:layout_toLeftOf="@+id/session_duration" 
      android:text="@string/dummy_text" /> 
     <TextView 
      android:id="@+id/session_duration" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="16dp" 
      android:maxLines="1" 
      android:textSize="12sp" 
      android:layout_alignParentRight="true" 
      android:text="asdadsd" 
      android:textColor="@android:color/darker_gray" 
      /> 
    </RelativeLayout> 

und das Ergebnis

Result

Wie Sie sehen, es ist fit ist in Ordnung, aber zweite Textview ist auf der rechten Seite sehen können, wenn ich es sein will nach dem ersten TextView. Als ich LinearLayout verwendete, sah ich ein Problem mit der Größe des ersten TextView (wenn es zu viele Text darin hat, wird der zweite TextView vom Bildschirm gehen). Ein anderer Ansatz mit Linearlayout gab mir ähnliche Ergebnisse zu RelativeLayout mit dem gleichen Problem (falscher Position der zweiten Ansicht)

+0

Verwendung weightsum .. –

+0

'android: layout_alignParentRight = "true"' entfernen diese. –

+0

@SatanPandeya Wenn ich es entferne, wird die zweite TextView nach links verschoben (links von der Elternansicht) – Ekalips

Antwort

2

Dies geschieht, weil Sie wrap_content verwenden. Wenn textView1 den Platz des gesamten Bildschirms benötigt, wird textView2 nichts erhalten. Stattdessen können Sie layout_weight verwenden, um immer einen View seinen Platz zu geben.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="start" 
    android:gravity="center" 
    android:visibility="visible" 
    android:orientation="horizontal"> 

<TextView 
    android:id="@+id/partner_full_name" 
    android:layout_width="0dp" 
    android:layout_weight=".5" 
    android:layout_height="wrap_content" 
    android:gravity="left" 
    android:maxLines="2" 
    android:text="Super Long String" 
    android:textColor="@color/black" 
    android:textSize="12sp" /> 

<TextView 
    android:id="@+id/session_duration" 
    android:layout_width="0dp" 
    android:layout_weight=".5" 
    android:layout_height="wrap_content" 
    android:maxLines="1" 
    android:text="I will always show" 
    android:textColor="@android:color/darker_gray" 
    android:textSize="12sp" /> 
</LinearLayout> 
+1

Danke! Das hat super funktioniert! – Ekalips

+0

Also, benutzt es für eine Weile und konfrontiert Problem. Sie sehen, wenn TextView1 (partner_full_name) Text ist klein - alles in Ordnung. Aber wenn es größer als die Hälfte der Ansicht ist, wird es in die zweite Zeile gezwungen, obwohl es viel Platz vor sich hat (TextView2 Text ist in den meisten Fällen klein) und im Ergebnis habe ich wirklich seltsame Sicht. – Ekalips

0

Entfernen Sie diese Zeile aus dem zweiten Textview:

android:layout_alignParentRight="true"