web-dev-qa-db-fra.com

Suppression du texte barré de TextView

J'utilise cette ligne ci-dessous afin de définir un barré sur mon TextView:

tv.setPaintFlags(tv.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);

Cependant, plus tard dans le fragment, s'ils cliquent à nouveau sur TextView, j'aimerais que le barré soit supprimé. Quelle ligne de code puis-je utiliser pour simplement afficher à nouveau TextView au format normal?

Merci d'avance!

38
edwoollard

J'ai fini par trouver cela en ligne:

tv.setPaintFlags(tv.getPaintFlags() & (~ Paint.STRIKE_THRU_TEXT_FLAG));

Cela supprime avec succès le barré et j'ai donc appelé cela dans ma méthode OnListItemClick après avoir effectué une vérification dans la base de données que j'ai faite pour voir si l'élément avait déjà été barré (acheté dans mon cas).

84
edwoollard

Une autre façon consiste simplement à définir la valeur de setPaintFlags à zéro.

tv.setPaintFlags(0) 

REMARQUE:

Cela supprimera la grève dans votre texte et tout autre design de police de caractères, vous êtes libre d'utiliser au cas où il ne s'appliquerait pas à votre vue.

17
Ronak Mehta

Vous pouvez définir un OnClickListener sur le TextView, réinitialiser les indicateurs Paint et appeler sa invalidate() pour qu'il se redessine.

3
Emmanuel

La configuration d'AntiAlias ​​m'a aidé à rendre le texte moins distordu

Kotlin

tv.paintFlags = Paint.ANTI_ALIAS_FLAG
0
pratham kesarkar