@Override
protected void convert(BaseViewHolder helper, Status item) {
helper.addOnClickListener(R.id.img).addOnClickListener(R.id.tweetText).addOnClickListener(R.id.tweetName);
switch (helper.getLayoutPosition()%
3){
case 0:
helper.setImageResource(R.id.img,R.mipmap.animation_img1);
break;
case 1:
helper.setImageResource(R.id.img,R.mipmap.animation_img2);
break;
case 2:
helper.setImageResource(R.id.img,R.mipmap.animation_img3);
break;
}
helper.setText(R.id.tweetName,"Hoteis in Rio de Janeiro");
String msg="\"He was one of Australia's most of distinguished artistes, renowned for his portraits\"";
( (TextView)helper.getView(R.id.tweetText)).setText(SpannableStringUtils.getBuilder(msg).append("landscapes and nedes").setClickSpan(clickableSpan).create());
( (TextView)helper.getView(R.id.tweetText)).setMovementMethod(LinkMovementMethod.getInstance());
}
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View widget) {
ToastUtils.showShortToast("事件触发了 landscapes and nedes");
}
@Override
public void updateDrawState(TextPaint ds) {
ds.setColor(Utils.getContext().getResources().getColor(R.color.clickspan_color));
ds.setUnderlineText(true);
}
};
然后点击 事件 处理这里 对chidlview (R.id.tweetText ) 不做任何处理
mRecyclerView.addOnItemTouchListener(new OnItemChildClickListener() {
@Override
public void onSimpleItemChildClick(BaseQuickAdapter adapter, View view, int position) {
String content = null;
Status status = (Status) adapter.getItem(position);
switch (view.getId()) {
case R.id.img:
content = "img:" + status.getUserAvatar();
Toast.makeText(AnimationUseActivity.this, content, Toast.LENGTH_LONG).show();
break;
case R.id.tweetName:
content = "name:" + status.getUserName();
Toast.makeText(AnimationUseActivity.this, content, Toast.LENGTH_LONG).show();
break;
case R.id.tweetText:
// you have set clickspan .so there should not solve any click event ,just empty
break;
}
}
});
在最新项目的 AnimationUseActivity 类里,我做了这种情况的示范处理办法,就是将 类似于clickspan的这种控件,作为一个childviewid 绑定到监听事件,但是在事件回调里不做处理 官方的clickspan点击之后分发就有这个坑 。http://blog.csdn.net/zhaizu/article/details/51038113
然后点击 事件 处理这里 对chidlview (R.id.tweetText ) 不做任何处理