Удаление зачеркивания из TextView

Я использую эту строку ниже, чтобы установить зачеркивание в моем TextView:

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

Однако позже во фрагменте, если они снова щелкнут TextView, я бы хотел, чтобы зачеркивание было удалено. Какую строку кода я могу использовать, чтобы просто заставить TextView снова отображать текст в обычном формате?

Заранее спасибо!


person edwoollard    schedule 18.09.2013    source источник


Ответы (4)


В итоге я нашел это в Интернете:

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

Это успешно удаляет зачеркивание, и поэтому я вызвал это в своем методе OnListItemClick после выполнения проверки в базе данных, которую я сделал, чтобы увидеть, был ли элемент уже зачеркнут (в моем случае куплен).

person edwoollard    schedule 18.09.2013

Другой способ — просто установить значение setPaintFlags равным нулю.

tv.setPaintFlags(0) 

ПРИМЕЧАНИЕ:

Это удалит зачеркивание вашего текста и другого дизайна шрифта. Вы можете использовать его, если это не относится к вашему представлению.

person Ronak Mehta    schedule 25.09.2014
comment
это также удалит другие функции рисования, такие как дизайн шрифта, с текста, и он будет выглядеть как скелет без плоти на нем! - person Naaz; 05.05.2015

Вы можете установить OnClickListener на TextView, сбросить флаги рисования и вызвать его invalidate(), чтобы он перерисовал себя.

person Emmanuel    schedule 18.09.2013
comment
Мне нравится ваша идея, и я уверен, что смогу заставить этот метод работать, однако я нашел более простой ответ в Интернете. Спасибо, в любом случае. - person edwoollard; 19.09.2013

Настройка AntiAlias ​​помогла мне сделать текст менее искаженным

Котлин

tv.paintFlags = Paint.ANTI_ALIAS_FLAG
person pratham kesarkar    schedule 12.03.2019