webentwicklung-frage-antwort-db.com.de

Multiline TextView mit der Breite "wrap_content"

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

12
znat

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>
16
nhaarman

Auch hinzufügen

Android:minLines="2"
Android:scrollHorizontally="false"
1
Wafaa BEK

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.

0
Joseph

Du könntest es versuchen

Android:inputType="textMultiLine"

in Ihrem TextView XML. Das hat bei mir funktioniert.

0
Raimi bin Karim