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:
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:
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 dieListView
sollte es Aussehen wie folgt. Oder, wenn Ihre kombinierte Breite, die größer ist als die Breite Liste, dieser der angeforderte Verhalten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Funktioniert das, wie Sie wollen?
Indem die layout_weight Parameter und machen Ihnen gleich, Sie sagen, die layout-engine zu reservieren, jede freie Platz gleichmäßig zwischen den beiden Ansichten. Wenn Sie möchten, dass der linke block größer als die Rechte ist, können Sie es geben, ein größeres Gewicht.
Edit: Vielleicht ist das besser:
ViewGroups
nie gedacht. Allerdings bekam ich eine "Keine resource identifier gefunden" fürandroid:layoutDirection
. Aber die Umschaltung der zweiten innerenLinearLayout
zu einemFrameLayout
und fügte hinzu, eineandroid:layout_gravity="right"
hat den trick. Thx!!!