Ich frage mich, wie eine TextView
ihren Inhalt in mehreren Zeilen anzeigen soll ohne die Breite im XML fest zu codieren .
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:gravity="right"
Android:orientation="horizontal">
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:singleLine="false"
Android:text="Long multiline text"/>
<TextView
Android:textColor="@color/text_color"
Android:layout_width="130dp"
Android:layout_height="wrap_content"
/>
</LinearLayout>
Jeder Gedanke ist willkommen.
EDIT: Mein Problem ist, dass wenn der Text die eingestellte Breite überschreitet (weil er das Ende des Bildschirms erreicht), ein Teil des Textes einfach nicht angezeigt wird. Ich würde erwarten, dass der Text in zwei Zeilen aufgeteilt wird
Obwohl ich das Problem mit dem nicht umhüllenden Text nicht reproduzieren kann, können Sie das Positionierungsproblem beheben, indem Sie eine weight
für die erste TextView
verwenden. Wenn Sie das folgende XML verwenden, erhalten Sie die erwartete Ausgabe in der grafischen Layoutansicht in Eclipse:
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:gravity="right"
Android:orientation="horizontal">
<TextView
Android:layout_width="0dp"
Android:layout_weight="1"
Android:layout_height="wrap_content"
Android:singleLine="false"
Android:text="Long multiline text"/>
<TextView
Android:textColor="@color/text_color"
Android:layout_width="130dp"
Android:layout_height="wrap_content"
/>
</LinearLayout>
Auch hinzufügen
Android:minLines="2"
Android:scrollHorizontally="false"
Ich glaube, ich hatte ein sehr ähnliches Problem. Ich hatte ein TextView
mit einem Text, bei dem ich nicht sicher war, wie viele Zeilen es dauern wird. Es wurde von einem LinearLayout
mit Android:layout_width="match_parent"
Gekapselt, um sicherzustellen, dass mein Text den gesamten Raum horizontal ausfüllt. Das Problem bestand jedoch darin, dass mein Text nicht in eine Zeile passte und beim Aufbrechen in eine neue Zeile die nächste Ansichtskomponente darunter nicht nach unten verschoben wurde, um genügend Platz für die vollständige Anzeige der zweiten Zeile zu bieten.
Ich könnte die Lösung erreichen, indem ich das LinearLayout
, das mein TextView
enthielt, in ein RelativeLayout
ändere. Auf diese Weise wurde das Element unter dem Text (tatsächlich unter dem Layout selbst) automatisch verschoben, um genügend Platz für den mehrzeiligen Text zu schaffen.
Du könntest es versuchen
Android:inputType="textMultiLine"
in Ihrem TextView XML. Das hat bei mir funktioniert.