使用clickablespan时Textview不会改变外观

时间:2015-06-28 07:55:22

标签: android textview android-recyclerview

我有以下spantext设置为TextView的一部分。  我已确认TextView正在完美地接收onClick输入,但TextView并未更改它的背景颜色,直到我点击跨度很多次(它有所不同)或滚动recyclerview进出视图,但不要太远,因为它会重置。

如何在第一次点击后立即更新TextView中的recyclerview

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

1 个答案:

答案 0 :(得分:0)

事实证明,修复

非常简单
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);
        }
    }
}