Supprimer les sauts de ligne supplémentaires après le Html.fromHtml()
Je suis en train de placer le contenu html dans un TextView. Tout fonctionne parfaitement, c'est mon code.
String htmlTxt = "<p>Hellllo</p>"; //the html is form an API
Spanned html = Html.fromHtml(htmlTxt);
myTextView.setText(html);
Ce jeux, mon TextView avec le code html approprié. Mais mon problème, c'est d'avoir un
balise dans le code html, le texte de résultat qui va dans le TextView un "\n" à la fin, de sorte qu'il pousse ma TextView hauteur du plus élevé qu'il devrait être.
Depuis son étendue variable, je ne peux pas appliquer de regex remplacer pour supprimer le "\n" et si j'étais à la convertir en une chaîne de caractères, puis appliquer les regex, je perds la fonctionnalité d'avoir des ancres html pour fonctionner correctement.
Personne ne sait de toutes les solutions pour supprimer la fin de saut de ligne(s) à partir d'un "Fractionné" variable?
- Pouvez-vous utiliser HTML sauts de ligne (
<br/>
) à la place? Vous pouvez placer le saut de ligne avant le texte, et rien, après si c'est: <br/>Hellllllllooooo , ce qui donnera un peu de répit au-dessus du texte, mais rien en dessous. - le html est de retour à partir d'une API et je n'ai aucun contrôle sur elle.
- Peut-être l'aide de TextUtils.getTrimmedLength() serait le travail. Il y a un tas d'autres fonctions TextUtils qui peuvent vous aider à résoudre le problème...
- J'ai été aux prises avec aujourd'hui. Les réponses ci-dessous fonctionnent bien, comme je l'ai écrit de ma propre. Le problème, c'est quand </p> balises ne sont pas seulement à la fin, mais ailleurs dans le texte. La seule façon de le faire est de convertir une chaîne de caractères et à faire .remplacer(...) mais alors vous perdez tous votre mise en forme.
- vérifiez aussi de cette façon très simple et fonctionne 😉 stackoverflow.com/a/24553061/2626219
Vous devez vous connecter pour publier un commentaire.
Belle réponse @Christine. J'ai écrit une fonction similaire pour enlever la fuite des espaces à partir d'un CharSequence cet après-midi:
do-while
est plus lisible qu'unwhile
:do { --i; } while (i >= 0 && Character.isWhitespace(cs.charAt(i)))
(évidemment, de le fractionner en plusieurs lignes -- StackOverflow ne me permet pas de le faire dans un commentaire)La spannable est un CharSequence, vous pouvez manipuler.
Cela fonctionne:
SpannableString
s, commesubSequence()
crée un tout nouveauSpannableString
objet. L'on a accepté la réponse est beaucoup mieux.Vous pouvez essayer ceci:
vous pouvez utiliser ces lignes ... totalement fonctionne 😉
je sais que votre problème est résolu mais peut-être que certains on trouver cela utile .
et voici replaceLast ...