我的布局中包含TextView
和ClickableSpan
。单击TextView
应触发在浏览器中打开URL的意图。点击ClickableSpan
会触发不同的意图。
之前,我正在使用ListView
,它可以通过简单地将android:descendantFocusability="blocksDescendants"
添加到根ViewGroup
来实现。但是当切换到RecyclerView
时,点击ClickableSpan
会触发两个意图:TextView
中的那个和ClickableSpan
中的那个。
这是我的代码:
// here i'm just getting the span bounds
int start = link.getStart();
int end = link.getEnd();
MyClickableSpan clickSpan = new MyClickableSpan() {
@Override
public void onClick(View widget) {
// here i set the intent
}
};
ssb.setSpan(clickSpan, start, end, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
holder.title.setText(ssb, TextView.BufferType.SPANNABLE);
holder.title.setMovementMethod(LinkMovementMethod.getInstance());
MyClickableSpan
是常规ClickableSpan
,但没有带下划线的文字。