使用 clickablespan 时 Textview 不改变外观

Textview not changing appearance when using clickablespan

我有以下 spantext,它设置为 TextView 的一部分。 我已经确认 TextView 正在完美地接收 onClick 输入,但是 TextView 没有改变它的 背景颜色 直到我点击跨度很多次(它会有所不同)或将 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);
        }
    }
}