web-dev-qa-db-fra.com

Limiter le nombre de lignes dans TextView

J'ai un textView scrollable, et je veux limiter le nombre de lignes affichées, mais les propriétés xml ne fonctionnent pas:

<TextView
   Android:id="@+id/tv_addesc"
   Android:layout_width="match_parent"
   Android:layout_height="wrap_content"
   Android:scrollbars="vertical"
   Android:maxLines="12"
   Android:textColor="#FFFFFFFF"
   Android:textSize="15sp" />

le nombre de lignes affichées est 50 et le texte contient 900 caractères.

Comment puis-je limiter le nombre de lignes affichées et le faire défiler?

Edit: J'ai testé avec 846 lignes et 15824 caractères, tout le texte est affiché quel que soit le jeu de propriétés.

Edit: il y avait un deuxième composant à côté de textView, quand je l’ai supprimé, cela fonctionnait, je vais donc trouver une solution de contournement. Je vous remercie !

36
Jerec TheSith

Il vous suffit de définir un nombre de lignes dans votre TextView comme ceci:

Android:maxLines = "10"

et vous devez également ajouter:

Android:minLines="1"

Le reste de ceci n'est pas nécessaire si vous n'utilisez pas le défilement

et une propriété qui dit que cette TextView doit pouvoir défiler verticalement:

Android:scrollbars = "vertical"

Et dans votre code Java:

yourTextView.setMovementMethod(new ScrollingMovementMethod())
75

placez votre affichage texte en mode défilement et définissez une hauteur fixe.

<ScrollView
    Android:id="@+id/scrollView1"
    Android:layout_width="fill_parent"
    Android:layout_height="120dip" >

    <TextView
        Android:id="@+id/tv_addesc"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:maxLines="12"
        Android:scrollbars="vertical"
        Android:textColor="#FFFFFFFF"
        Android:textSize="15sp" />
</ScrollView>

définir les propriétés selon vos besoins

2
Jignesh Ansodariya
<ScrollView
Android:id="@+id/scrollView1"
Android:layout_width="fill_parent"
Android:layout_height="120dip" >

<TextView
    Android:id="@+id/tv_addesc"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:maxLines="12"
    Android:scrollbars="vertical"
    Android:textColor="#FFFFFFFF"
    Android:textSize="15sp" />
 </ScrollView>
2
Rauf

Trouvez votre textview par identifiant:

TextView myTextBox=(TextView)findViewById(R.id.textBox);

Maintenant, utilisez la fonction setMaxLines et assignez le nombre de lignes que vous souhaitez, disons 20.

myTextBox.setMaxLines(20);

Cela limite votre zone de texte pour afficher 20 lignes seulement.

1
kapilgm

hé essayez de définir la propriété singleline sur false. Voyez si ça marche.

1
bostan

J'ai essayé comme dit dans la réponse acceptée et d'autres mais cela n'a pas fonctionné pour moi, mais après avoir ajouté Android:ellipsize="Marquee", cela fonctionne maintenant ..

0
Shylendra Madda