web-dev-qa-db-fra.com

TextView coupe le texte quand il est assez long

J'ai un problème étrange avec TextView, il coupe une partie du texte à la fin. Ma mise en page ressemble à

<LinearLayout
        Android:layout_width="fill_parent"
        Android:layout_height="fill_parent"
        Android:layout_gravity="top|center_horizontal"
        Android:gravity="top|center_horizontal"
        Android:orientation="vertical" >
        <LinearLayout
            Android:layout_width="fill_parent"
            Android:layout_height="fill_parent"
            Android:layout_gravity="top|center_horizontal"
            Android:gravity="top|center_horizontal"
            Android:orientation="horizontal"
            Android:layout_weight="1"
            Android:layout_marginBottom="5dp">
            <Button
                Android:id="@+id/btnPreviousQuestion"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:background="@drawable/selector_arrow_left"
                Android:clickable="true"
                Android:visibility="gone" >
            </Button>
            <TextView
                Android:id="@+id/txtQuestion"
                style="@style/question_text"
                Android:layout_width="fill_parent"
                Android:layout_height="fill_parent"
                Android:gravity="top|center_horizontal"
                Android:layout_weight="1"
                 />
            <Button
                Android:id="@+id/btnNextQuestion"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:layout_marginRight="10dp"
                Android:background="@drawable/selector_arrow_right"
                Android:clickable="true" >
            </Button>
        </LinearLayout>
        <LinearLayout
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:layout_gravity="center_horizontal"
            Android:layout_weight="1"
            Android:orientation="horizontal" >
            <WebView
                Android:id="@+id/wvMultimediaQuestion"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:layout_gravity="bottom|center_horizontal"
                Android:layout_marginLeft="50dp"
                Android:layout_marginRight="55dp"
                Android:layout_weight="1"
                Android:visibility="gone" />
        </LinearLayout>
    </LinearLayout>

et txtQuestion coupe le texte quand il est assez long. Quel est le problème, quelqu'un sait-il?

14
Damir

Utiliser ces attributs

    Android:lines="1"
    Android:scrollHorizontally="true"
    Android:ellipsize="end"

ajoutera "..." à la fin. Mais cela ne résoudra pas le problème dans l'onglet en nid d'abeille

Donc, pour la tablette en nid d'abeille, ajoutez également l'attribut suivant

Android:singleLine="true" 

D'autre part si vous avez besoin d'effet Marquee

Android:singleLine="true"
Android:ellipsize="Marquee" 
Android:marqueeRepeatLimit="Marquee_forever"
Android:scrollHorizontally="true" 
Android:focusable="true" 
Android:focusableInTouchMode="true
52
Santhosh Shettigar

Oui, vous devez définir certains attributs, mais laissez-nous d'abord savoir quel type de vue de texte voulez-vous exactement, une ligne ou plusieurs lignes?

Vous pouvez vous occuper de certains attributs:

Android:singleLine="true"  // or false
Android:ellipsize="Marquee"   // must check
Android:lines="1"
5
Paresh Mayani

Vous devez définir Android: minLines = "2"

0
Aliya

Si vous vous attendez à des longueurs de texte différentes pour votre affichage ou si vous envisagez de modifier la textSize de différentes instances de votre TextView, vous devez utiliser View.addOnLayoutChangeListener().

Voir un exemple ici: https://stackoverflow.com/a/44069734/1402087

0
mp501