Android Textview在使用clickablespan时不更改外观
我有以下Android Textview在使用clickablespan时不更改外观,android,textview,android-recyclerview,Android,Textview,Android Recyclerview,我有以下spantext设置为TextView的一部分。 我已经确认TextView正在完美地接收onClick输入,但是TextView没有改变它的背景色,直到我多次单击span(它会变化),或者在视图内外滚动recyclerview,但不会太远,因为它会重置 如何在第一次单击后立即更新recyclerview中的TextView public class SpoilerSpan extends ClickableSpan { private boolean clicked = fal
spantext
设置为TextView
的一部分。
我已经确认TextView
正在完美地接收onClick输入,但是TextView
没有改变它的背景色,直到我多次单击span(它会变化),或者在视图内外滚动recyclerview
,但不会太远,因为它会重置
如何在第一次单击后立即更新recyclerview
中的TextView
public class SpoilerSpan extends ClickableSpan {
private boolean clicked = false;
@Override
public void onClick(View widget) {
clicked = true;
Log.d("Span", "Spoilerspan click registered")
}
@Override
public void updateDrawState(TextPaint ds) {
if (!clicked){
ds.setColor(Color.argb(255, 00, 00, 00)); //FF000000
ds.bgColor = Color.argb(255, 00, 00, 00); //FF000000
ds.setUnderlineText(false);
}
}
}
事实证明,修复起来非常简单
public class SpoilerSpan extends ClickableSpan {
private boolean clicked = false;
@Override
public void onClick(View widget) {
clicked = true;
widget.invalidate();
}
@Override
public void updateDrawState(TextPaint ds) {
if (!clicked){
ds.setColor(Color.argb(255, 00, 00, 00)); //FF000000
ds.bgColor = Color.argb(255, 00, 00, 00); //FF000000
ds.setUnderlineText(false);
}
}
}