174 votes

Multiline TextView dans Android?

J'ai fait comme ci-dessous en xml

             <TableRow>
            <TextView android:id="@+id/address1"
                  android:layout_width="fill_parent" 
                  android:layout_height="wrap_content"
                  android:gravity="left"
                  android:maxLines="4" 
                  android:singleLine="false"                
                  android:text="Johar Mor, Gulistan-e-Johar, Karachi" >
            </TextView> 
            </TableRow>
 

Cela ne fonctionne pas pour multiline, et j'utilise TableLayout ,,,

alors quelle est l'erreur que je fais ici?

213voto

Zarah Points 3050

Si le texte que vous insérez dans TextView est court, il ne sera pas automatiquement étendu à quatre lignes. Si vous souhaitez que le TextView toujours quatre lignes, quelle que soit la longueur du texte qu'il contient, définissez l'attribut android:lines :

 <TextView
    android:id="@+id/address1"
    android:gravity="left"
    android:layout_height="fill_parent"
    android:layout_width="wrap_content"
    android:maxLines="4"
    android:lines="4"
    android:text="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."></TextView>
 

30voto

Maragues Points 9461

Je n'aime aucune des réponses. Il suffit de définir le type d’entrée et le TextView s’adaptera à son contenu

 <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:inputType="textMultiLine"/>
 

Testé sur Nexus One (2.3) et Nexus 4 (4.4)

11voto

Pravin Points 189

Ajoutez juste textview dans ScrollView

 <ScrollView
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:layout_weight="1"
           android:layout_marginLeft="15dp"
           android:layout_marginRight="15dp"
           android:layout_marginTop="20dp"
           android:fillViewport="true">

           <TextView
               android:id="@+id/txtquestion"
               android:layout_width="fill_parent"
               android:layout_height="match_parent"
               android:background="@drawable/abs__dialog_full_holo_light"
               android:lines="20"
               android:scrollHorizontally="false"
               android:scrollbars="vertical"
               android:textSize="15sp" />

       </ScrollView>
 

5voto

Boris Strandjev Points 18480

Je n'aime pas la solution qui force le nombre de lignes dans la vue de texte. Je vous suggère plutôt de le résoudre via la solution proposée ici . Comme je le vois, le PO a également du mal à faire en sorte que la vue texte apparaisse comme telle dans le tableau et shrinkColumns est la bonne directive à suivre pour atteindre les objectifs recherchés.

1voto

Susana Mar Flores Points 367

J'ai utilisé:

 TableLayout tablelayout = (TableLayout) view.findViewById(R.id.table);
tablelayout.setColumnShrinkable(1,true);
 

cela a fonctionné pour moi. 1 est le numéro de colonne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X