实现效果如图:
if (remark.getIsReviewType() == 1) {//1: 二级评论回复一级评论 ;2:二级评论回复二级评论
holder.tv_r_remark.setText(remark.getReviewContent());
} else {
SpannableString spannableString = new SpannableString("回复" + "@" + remark.getReceiveNickName() + remark.getReviewContent());
spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#507DAF")), "回复".length(), "回复@".length() + remark.getReceiveNickName().length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
holder.tv_r_remark.setText(spannableString);
}
SpannableString 构造函数的参数为你要改变的文本。setSpan方法有四个参数,ForegroundColorSpan是为文本设置前景色,也就是文字颜色。如果要为文字添加背景颜色,可替换为BackgroundColorSpan。
ForegroundColorSpan有四个参数,第一个参数是要改变的颜色,第二个参数是为文本颜色改变的起始位置,第三个为文本颜色改变的结束位置。最后一个参数为布尔型,可以传入以下四种:
- Spanned.SPAN_INCLUSIVE_EXCLUSIVE 从起始下标到终了下标,包括起始下标
- Spanned.SPAN_INCLUSIVE_INCLUSIVE 从起始下标到终了下标,同时包括起始下标和终了下标
- Spanned.SPAN_EXCLUSIVE_EXCLUSIVE 从起始下标到终了下标,但都不包括起始下标和终-
- Spanned.SPAN_EXCLUSIVE_INCLUSIVE 从起始下标到终了下标,包括终了下标