web-dev-qa-db-fra.com

Comment laisser un TextView avoir plusieurs lignes?

Je veux afficher plusieurs lignes via TextView et strings.xml. Je veux afficher les premières lignes jusqu'au milieu de la page et les autres lignes à afficher en entier de la page. Je veux montrer les premières lignes avec la même taille de page de largeur.

La gauche de la page est une image et la droite de la page est mes phrases.

Ceci est mon code mais cela montre de l'échevelure.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:orientation="horizontal">
<ImageView 
    Android:id="@+id/logoImage"
    Android:src="@drawable/ic_launcher"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"/>
<TextView
    Android:id="@+id/txtIntroduce"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:text="@string/txtIntroduce"
    Android:textColor="@color/blue_text"
    Android:background="@color/blue"/>
</LinearLayout>

strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
     <string name="intro">.................  ....</string>
<resources>

Comment puis-je afficher cette vue? Désolé pour mon pauvre anglais et merci pour votre aide.

11
SensorS

Il semble que vous souhaitiez enrouler du texte autour d'une image, comme ceci:

--------------------
|..........| xxxxxxx
|..Picture.| xxxxxxx
|..........| xxxxxxx
------------ xxxxxxx
xxxxxxxxxxTextxxxxxx
xxxxxxxxxxxxxxxxxxxx

Je pense que l'option la plus simple est une WebView. Cependant, selon this , vous pouvez également utiliser des balises d'image dans une TextView. Je ne l'ai jamais essayé moi-même, mais j'ai utilisé les autres balises comme ceci: TextView.setText(Html.fromHtml("<b>some bold text</b> some normal text")) alors peut-être que quelque chose de similaire fonctionnera dans votre situation.

5
Merk

Vous pouvez jeter un œil à ces trois propriétés xml de TextView:

<TextView
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:ellipsize="end"
    Android:maxLines="5"
    Android:singleLine="false" />

Vous pouvez y définir le nombre de lignes du TextView et s'il doit y avoir des points affichés ("...") lorsque le texte dépasse la taille du TextView.

Vous pouvez également utiliser return à l'intérieur de vos chaînes .xml pour démarrer une nouvelle ligne: ("\ n")

<string name="intro">This is the first line \n this is a new line.</string>
24
Philipp Jahoda

Modifiez le nombre de lignes et limitez le nombre de caractères

Android: inputType = "textMultLine"
Android: maxLength = "180"
Android: lines = "5"
Android: maxLines = "5"

3
João Paulo Paiva

Voici mon premier post sur stackoverflow ...

Je pense que c'est le meilleur moyen simple d'avoir une TextView multiligne sur Android. Et c'est parti:

  1. Écrivez votre texte dans un éditeur externe (ex. Microsoft Word, LibreOffice, etc.) avec des paragraphes et plusieurs lignes.

  2. Ouvrez le fichier strings.xml de votre projet et créez une nouvelle chaîne (ex. <string name="my_multiline_textview></string>).

  3. Copiez et collez chaque paragraphe de votre texte à l'intérieur des balises, en mettant un \n à la fin.

  4. Autant \n vous mettez à la fin du paragraphe, autant de lignes entre eux.

  5. Insérez un nouveau textView sur votre mise en page et associez-le à la chaîne multiligne créée aux étapes 2, 3 et 4 (Android:text="@string/my_multiline_textview").

  6. Revenez à la disposition graphique et voyez la magie se produire :-)

J'espère que ces informations peuvent vous aider tous. À plus.

3
Jose Carlos