J'essaye d'ajouter un saut de ligne dans le TextView.
J'ai essayé suggéré \ n mais cela ne fait rien. Voici comment je règle mes textes.
TextView txtSubTitle = (TextView)findViewById(r.id.txtSubTitle);
txtSubTitle.setText(Html.fromHtml(getResources().getString(R.string.sample_string)));
Ceci est ma chaîne: <string name="sample_string">some test line 1 \n some test line 2</string>
Cela devrait apparaître comme ceci:
some test line 1
some test line 2
Mais il montre comme ceci: some test line 1 some test line 2
.
Est-ce que je manque quelque chose?
android
textview
line
line-breaks
les rejets de Jupiter
la source
la source
\n
c'est en effet le meilleur moyen. github.com/paour/StringResourceTestHtml.fromHtml()
fonction et utilisez simplementtxtSubTitle.setText(getResources().getString(R.string.sample_string))
.Réponses:
\n
fonctionne pour moi, comme ceci:la source
\n
seul fonctionnera ... Ne pensez pas qu'il\r
fait quoi que ce soit.ok compris:
donc envelopper dans CDATA est nécessaire et des pauses ajoutées à l'intérieur comme balises html
la source
Html.fromHtml()
, ce qui est un peu trop pour un simple saut de ligne et n'est pas bien pris en charge par les fournisseurs de traduction.La version 1.6 d'Android ne reconnaît pas \ r \ n. À la place, utilisez: System.getProperty ("line.separator")
la source
Les sauts de ligne (\ n) ne fonctionnent que si vous mettez votre valeur de ressource de chaîne entre guillemets comme ceci:
Il ne fera pas de sauts de ligne si vous le mettez sans guillemets comme ceci:
oui, c'est aussi simple que cela.
la source
<string name="sample_string">"some test line 1 some test line 2 line 3" </string>
J'ai essayé tout ce qui précède, j'ai fait mes propres recherches, ce qui a abouti à la solution suivante pour le rendu des caractères d'échappement de saut de ligne:
En utilisant la méthode de remplacement, vous devez filtrer les sauts de ligne échappés (par exemple '\\ n')
Ce n'est qu'alors que chaque instance de caractères d'échappement de saut de ligne '\ n' est rendue dans le saut de ligne réel
Pour cet exemple, j'ai utilisé une base de données Google Apps Scripting noSQL (ScriptDb) avec des données au format JSON.
Acclamations: D
la source
Cela a fonctionné pour moi
la source
Il y a deux façons de contourner cela. Si vous utilisez votre chaîne comme chaîne brute, vous devez utiliser le caractère de nouvelle ligne. Si vous l'utilisez en html, par exemple en l'analysant avec
Html.fromString
, la deuxième variante est meilleure.1) Caractère de nouvelle ligne
\n
2) Balise de retour à la ligne HTML
<br>
ou<br />
la source
<br>
,<u>
,<b>
Et les<i>
balises sont autorisées dans les ressources de chaîne sans évasion, et sont correctement appliquées parTextView.setText(resId)
. Ils sont dépouillés s'ils sont utilisésContext.getString(resId)
, sauf s'ils sont enveloppés dans uneCDATA
section.Cela a fonctionné pour moi, peut-être que quelqu'un trouvera cela utile:
la source
Si vous utilisez XML pour déclarer votre utilisation de TextView
android:singleLine = "false"
ou en Java, utiliseztxtSubTitle.setSingleLine(false);
la source
Utilisé Android Studio 0.8.9. La seule façon de travailler pour moi est d'utiliser
\n
. Ni emballage avec CDATA ni<br>
ou<br />
travaillé.la source
J'utilise ce qui suit:
la source
très simple: utilisez "\ n"
\ n correspond au caractère ASCII 0xA, qui est 'LF' ou saut de ligne
\ r correspond au caractère ASCII 0xD, qui est 'CR' ou retour chariot
cela remonte aux toutes premières machines à écrire, où vous pouviez choisir de ne faire qu'un saut de ligne (et taper juste une ligne plus bas), ou un saut de ligne + retour chariot (qui se déplace également au début d'une ligne)
sur Android / java, le \ n correspond à un retour chariot + saut de ligne, comme vous le feriez autrement simplement `` écraser '' la même ligne
la source
Essayez de vérifier vos localisations. Possible, vous essayez d'éditer un fichier (localisation), mais en programme en utilisant un autre, comme dans mon cas . La langue par défaut du système est le russe, alors que j'essaie de modifier la localisation en anglais.
Dans mon cas, la solution de travail consiste à utiliser "\ n" comme séparateur de ligne:
la source
Vous pouvez également ajouter
"<br/>"
au lieu de \ n.Il s'agit d'un code d'échappement HTML pour <br/>
Et puis vous pouvez ajouter du texte à TexView:
la source
Html.fromHtml(textForTextView).toString()
--- Et puis vous pouvez faire:articleTextView.setText(Html.fromHtml("text before break<br/>text after break").toString());
-------- En d'autres termes, utilisez simplement<br/>
directement à l'intérieurfromHtml()
<br/>
devrait suffire pour s'assurer que les informations de style ne sont pas supprimées. (basé sur la documentation officielle)Vous pouvez également utiliser l'éditeur de chaînes d'Android Studio, il génère automatiquement des freins de ligne et des trucs comme ça ...
la source
Comme
Html.fromHtml
obsolète, j'ai simplement utilisé ce code pour obtenir String2 dans la ligne suivante..
la source
Le moyen le plus simple de le faire est d'accéder aux valeurs / chaînes (dans votre dossier de ressources)
Déclarez une chaîne ici:
Et dans votre fichier xml spécifique, appelez simplement la chaîne comme
la source
J'ai trouvé une autre méthode: est nécessaire d'ajouter l' attribut " android: maxWidth =" 40dp " ". Bien sûr, cela peut ne pas fonctionner parfaitement, mais cela donne un saut de ligne.
la source
\ n ne fonctionnait pas pour moi. J'ai pu résoudre le problème en changeant le xml en texte et en créant la propriété textview text comme ci-dessous.
Espérons que cela aide ceux qui ont dit que \ n ne fonctionnait pas pour eux.
la source
\n
personnages cachés là-dedans.Je lis mon texte à partir d'un fichier, j'ai donc adopté une approche légèrement différente, car l'ajout \ n au fichier entraînait l'apparition de \ n dans le texte.
la source
Peut-être êtes-vous capable de mettre le lf dans le texte, mais il ne s'affiche pas? Assurez-vous d'avoir suffisamment de hauteur pour le contrôle. Par exemple:
Correct:
Peut être faux:
la source
Dans mon cas, j'ai résolu ce problème en ajoutant ce qui suit:
la source
essaye ça:
la source
Je pense qu'une réponse plus complète est nécessaire pour décrire plus en détail comment cela fonctionne.
Premièrement, si vous avez besoin d'un formatage avancé, consultez le manuel sur l'utilisation du HTML dans les ressources de type chaîne .
Ensuite, vous pouvez utiliser
<br/>
, etc. Cependant, cela nécessite de définir le texte à l'aide de code.S'il ne s'agit que de texte brut, il existe de nombreuses façons d'échapper à un caractère de nouvelle ligne (LF) dans les ressources de chaînes statiques .
Mettre la chaîne entre guillemets
Le moyen le plus simple est de mettre la chaîne entre guillemets.
Cela fera en sorte que les espaces soient interprétés exactement comme ils apparaissent, et non réduits.
Ensuite, vous pouvez simplement utiliser la nouvelle ligne normalement dans cette méthode (n'utilisez pas l'indentation).
Notez que certains caractères nécessitent un échappement spécial dans ce mode (comme
\"
).Les séquences d'échappement ci-dessous fonctionnent également en mode guillemets.
Lors de l'utilisation d'une seule ligne en XML pour représenter des chaînes multilignes
Le moyen le plus élégant d'échapper à la nouvelle ligne en XML est d'utiliser son point de code (10 ou 0xA en hexadécimal) en utilisant son entité XML / HTML


ou
. C'est la manière XML d'échapper à n'importe quel caractère .Cependant, cela semble fonctionner uniquement en mode cité.
Une autre méthode consiste à utiliser simplement
\n
, bien que cela affecte négativement la lisibilité, à mon avis (puisqu'il ne s'agit pas d'une séquence d'échappement spéciale en XML, Android Studio ne la met pas en évidence).N'incluez pas de nouvelle ligne ou d'espaces blancs après l'une de ces séquences d'échappement, car cela sera interprété comme un espace supplémentaire.
la source
Utilisez un saut de texte comme celui-ci (\ n):
la source