J'ai aimé ci-dessous dans 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?
Si le texte que vous mettez dans la variable TextView
est court, il ne sera pas automatiquement étendu à quatre lignes. Si vous voulez que la TextView
devienne toujours vous avez 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>
Vous pouvez le faire avec TableRow, voir ci-dessous le code
<TableRow >
<TextView
Android:id="@+id/tv_description_heading"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="left"
Android:padding="8dp"
Android:text="@string/rating_review"
Android:textColor="@color/black"
Android:textStyle="bold" />
<TextView
Android:id="@+id/tv_description"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="left"
Android:maxLines="4"`enter code here`
Android:padding="8dp"
Android:text="The food test was very good."
Android:textColor="@color/black"
Android:textColorHint="@color/hint_text_color" />
</TableRow>
J'ai essayé de commenter l'une des réponses ci-dessus mais je n'ai pas assez de réputation.
Je pensais juste que j'ajouterais que si vous utilisez:
Android:inputType="textMultiLine"
La vue cesse alors d'être cliquable. J'essayais d'obtenir des vues de texte multilignes dans mon menu de tiroirs de diapositives, ce qui doit évidemment répondre aux clics.
Le Android:singleLine="false"
a bien fonctionné cependant.
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)
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>
Mettez simplement '\ n' dans votre texte ... aucun attribut supplémentaire requis :)
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:textAppearance="?android:attr/textAppearanceLarge"
Android:text="Pigeon\nControl\nServices"
Android:id="@+id/textView5"
Android:layout_gravity="center"
Android:paddingLeft="12dp"/>
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 appropriée dans un tableau et que shrinkColumns
soit la bonne directive à suivre pour obtenir ce que vous souhaitez.
Essayez de travailler avec EditText en le rendant non cliquable et non focalisable. Vous pouvez également afficher une barre de défilement et supprimer la barre de sous-texte de EditText.
Voici un exemple:
<EditText
Android:id="@+id/my_edit_text"
Android:layout_width="match_parent"
Android:layout_height="wrap_parent"
Android:inputType="textMultiLine" <!-- multiline -->
Android:clickable="false" <!-- unclickable -->
Android:focusable="false" <!-- unfocusable -->
Android:scrollbars="vertical" <!-- enable scrolling vertically -->
Android:background="@Android:color/transparent" <!-- hide the underbar of EditText -->
/>
J'espère que cela t'aides :)
La meilleure réponse que j'ai trouvée pour multiligne TextView est:
Android:inputType="textMultiLine"
Ce que j’ai appris, c’est d’ajouter "\ n" entre les mots pour lesquels vous souhaitez que le message passe à la ligne suivante. Par exemple...
<TextView
Android:id="@+id/time"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:textAlignment="center"
Android:text="M-F 9am-5pm \n By Appointment Only" />
Les\n entre 17h et By m'ont permis de mieux contrôler le point de départ et de fin de ma prochaine ligne.
Commencez par remplacer "\n"
par sa Html
equavalent "<br>"
Puis appelez Html.fromHtml()
sur la chaîne. Suivez les étapes ci-dessous:
String text= model.getMessageBody().toString().replace("\n", "<br>")
textView.setText(Html.fromHtml(Html.fromHtml(text).toString()))
Cela fonctionne parfaitement.
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.
vous pouvez utiliser Android: inputType = "textMultiLine"
<TextView Android:id="@+id/address1"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:gravity="left"
Android:maxLines="4"
Android:inputType="textMultiLine"
Android:text="Johar Mor, Gulistan-e-Johar, Karachi" />
You can do this with TableRow, see below code
<TableRow >
<TextView
Android:id="@+id/tv_description_heading"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="left"
Android:padding="8dp"
Android:text="@string/rating_review"
Android:textColor="@color/black"
Android:textStyle="bold" />
<TextView
Android:id="@+id/tv_description"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="left"
Android:maxLines="4"`enter code here`
Android:padding="8dp"
Android:text="The food test was very good."
Android:textColor="@color/black"
Android:textColorHint="@color/hint_text_color" />
</TableRow>