Richten Sie zwei TextViews, einer Links der andere rechts, auf eine ListView ohne stretching die Hintergründe

Also ich habe zwei TextViews pro Zeile in einer ListView. Man sollte sich Links und der andere nach rechts ausgerichtet. Beide TextViews haben ein abgerundetes Rechteck als hintergrund-die sollten nur wickeln Sie den text hinein. Also ich kam mit dieser:

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

    <TextView
        android:id="@+id/text_right"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:background="@drawable/bubble_purple"
        android:gravity="center" >
    </TextView>

    <TextView
        android:id="@+id/text_left"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_toLeftOf="@id/text_right"
        android:background="@drawable/bubble_blue"
        android:gravity="center" >
    </TextView>
</RelativeLayout>

Sieht es gut für lange Texte, aber nicht für kürzere Nachrichten:

Richten Sie zwei TextViews, einer Links der andere rechts, auf eine ListView ohne stretching die Hintergründe

Ich habe auch versucht ein LinearLayout wie diese:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/text_left"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:background="@drawable/bubble_blue"
        android:gravity="center" >
    </TextView>

    <View
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_weight="1" />

    <TextView
        android:id="@+id/text_right"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:background="@drawable/bubble_purple"
        android:gravity="center">
    </TextView>
</LinearLayout>

Dies funktioniert für kurze Nachrichten, die aber nicht länger:

Richten Sie zwei TextViews, einer Links der andere rechts, auf eine ListView ohne stretching die Hintergründe

Ist es irgendwie möglich, Messen Sie die kombinierte Breite der TextViews und programmgesteuert wechseln Sie zwischen diesen layouts, oder mache ich etwas falsch hier?

  • Einige layout-Gewicht
  • Versuchen android:layout_weight="1" für beide
  • Wie sollten die beiden TextViews Strecken, wenn die erste klein und die zweite ist die big?
  • Wenn die zweite TextView ist größer, aber Ihre kombinierte Breite kleiner ist als die ListView sollte es Aussehen wie folgt. Oder, wenn Ihre kombinierte Breite, die größer ist als die Breite Liste, dieser der angeforderte Verhalten.
InformationsquelleAutor wollan | 2012-08-13
Schreibe einen Kommentar