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!
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).
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.
Vous pouvez définir un OnClickListener
sur le TextView
, réinitialiser les indicateurs Paint et appeler sa invalidate()
pour qu'il se redessine.
La configuration d'AntiAlias m'a aidé à rendre le texte moins distordu
Kotlin
tv.paintFlags = Paint.ANTI_ALIAS_FLAG