前言
距离上一次发布文章又沉静了一段时间了,想到要写什么又感觉有点简单了,拖着拖着又不想写了。最近需求有个类似微信朋友圈的评论列表功能,
所以就静下心来写一下,写段代码,大神勿喷,可能有可能地方存在漏洞,看出问题的哥们也可以留言指出我的问题,大家共同进步。
正文:
那么接下来先看一下效果,看看是不是你想要的效果,(当然如果是鄙人的话,看到效果不是自己想要的或者说不是类似的我就会懒得看了)
当然这个做的还有很多需要优化的地方,有很多可以改进的地方。大家做为参考学习使用。
直接上图
效果呢就是这么一个效果,low 呢是有那么一点low。
不过这个不重要,这都是文本颜色字体的问题,调一调就好了。
Demo地址:https://download.csdn.net/download/qq_35070105/10352996
好那么接下来就给大家先整理出来了怎么去使用
(简单用的才爽)
先说一下设置值显示的方法这里就简单的看一下 两个方法(下面会给完整的代码的)
/**
* 设置显示数据
*
* @param commentator 回复人
* @param content 回复内容
*/
public void setTextContent(String commentator,String content){
setTextContent(commentator,null ,content);
}
/**
* 设置显示数据
*
* @param commentator 回复人
* @param criticised 被回复人
* @param content 回复内容
*/
public void setTextContent(String commentator,String criticised,String content){
SpannableStringBuilder ssb = new SpannableStringBuilder();
setMovementMethod(LinkTouchMovementMethod.getInstance());
if (commentator != null){
ssb.append(commentator);
ssb.setSpan(new TouchableSpan(REPLY),0,commentator.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
if (criticised != null){
ssb.append(REPLY_HINT);
ssb.append(criticised);
ssb.setSpan(new TouchableSpan(REPLY_TO),
commentator.length()+REPLY_HINT.length(),
commentator.length()+REPLY_HINT.length()+criticised.length(),
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
if (content != null){
ssb.append(":"+content);
}
this.setText(ssb,BufferType.NORMAL);
}
好了设置数据参数的就只有这两个方法了。那么接下来我再介绍一下,这个自定义的View中有什么属性可以使用呢!先给大家看一下用法。
<com.example.peng.butterknifetest.UICommentTextView
android:id="@+id/ui_comment_text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#333333"
android:textSize="24sp"
app:comment_IsLongClickCopyOf="true"
app:comment_UserHintColor="#ff0000"
app:comment_UserHintBgNormalColor="@android:color/transparent"
app:comment_UserHintBgPressedColor="#e0e0e0"
app:comment_ViewBackgroundNormalColor="@android:color/transparent"
app:comment_ViewBackgroundPressedColor="#e0e0e0"/>