从TextView中去除删除线

44
我使用下面这行代码来为我的 TextView 设置删除线:
tv.setPaintFlags(tv.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);

然而在 Fragment 中,如果用户再次点击 TextView,我希望删除中划线。请问我应该使用哪行代码来使 TextView 再次以正常的格式显示文本内容?

提前感谢!

4个回答

94

我最终在网上找到了这个:

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

在我的OnListItemClick方法中,进行了数据库检查以查看项目是否已经被划掉(在我的情况下是指购买),这成功地去除了删除线,因此我调用了它。


22

另一种方法是将setPaintFlags的值简单设置为零。

tv.setPaintFlags(0) 

注意:

这将取消您文本中的删除线和其他字体设计,如果不适用于您的视图,则可以自由使用。


11
这也将删除其他绘画特征,例如字体设计,使其看起来像一个没有肉的骨架! - Naaz

3

您可以在TextView上设置一个OnClickListener,重置绘制标志,并调用其invalidate()方法以重新绘制自身。


我喜欢你的想法,我相信我能够让那个方法工作起来,但是我在网上找到了一个更简单的答案。不管怎样,谢谢。 - edwoollard

2
Setting up AntiAlias帮助我使文本看起来不那么扭曲。

Kotlin

(一种编程语言)
tv.paintFlags = Paint.ANTI_ALIAS_FLAG

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接