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);
        }
    }
}