支持类似微博的文本效果,表情、@某人、话题、url链接等。DEMO同时演示了MVVM模式的使用。
状态 |
功能 |
支持 |
表情 |
支持 |
#话题 |
支持 |
@某人 |
支持 |
url与数字(可配置) |
支持 |
点击效果 |
支持 |
自定义span效果 |
支持 |
表情、#话题与@某人编辑时整块删除 |
支持 |
表情、#话题与@某人编辑时选择复制限制整块选择。 |
支持 |
表情大小设置、居中显示 |
支持 |
MVVM(DataBing)。 |
支持 |
kotlin(demo与lib) |
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
compile 'com.github.CarGuo.RickText:textUtilsLib:v2.1.5'
}
dependencies {
compile 'com.github.CarGuo.RickText:textUtilsLib-kotlin:v2.1.5'
}
QQ群,有兴趣的可以进来,群里视频项目的人居多,平时多吹水吐槽:174815284 。
richTextView = (RichTextView) findViewById(R.id.rich_text_2);
//直接使用RichTextView
richTextView.setAtColor(Color.RED);
richTextView.setTopicColor(Color.BLUE);
richTextView.setLinkColor(Color.YELLOW);
richTextView.setNeedNumberShow(true);
richTextView.setNeedUrlShow(true);
richTextView.setSpanAtUserCallBackListener(spanAtUserCallBack);
richTextView.setSpanTopicCallBackListener(spanTopicCallBack);
richTextView.setSpanUrlCallBackListener(spanUrlCallBack);
//所有配置完成后才设置text
richTextView.setRichText(content, nameList, topicModels);
//url点击回调
SpanUrlCallBack spanUrlCallBack = new SpanUrlCallBack() {
@Override
public void phone(String phone) {
Toast.makeText(MainActivity.this, phone + " 被点击了", Toast.LENGTH_SHORT).show();
richText.setHighlightColor(Color.TRANSPARENT);
}
@Override
public void url(String url) {
Toast.makeText(MainActivity.this, url + " 被点击了", Toast.LENGTH_SHORT).show();
richText.setHighlightColor(Color.TRANSPARENT);
}
};
//@点击回调
SpanAtUserCallBack spanAtUserCallBack = new SpanAtUserCallBack() {
@Override
public void onClick(UserModel userModel1) {
Toast.makeText(MainActivity.this, userModel1.getUser_name() + " 被点击了", Toast.LENGTH_SHORT).show();
richText.setHighlightColor(Color.TRANSPARENT);
}
};
//话题点击回调
SpanTopicCallBack spanTopicCallBack = new SpanTopicCallBack() {
@Override
public void onClick(TopicModel topicModel) {
Toast.makeText(MainActivity.this, topicModel.getTopicName() + " 被点击了", Toast.LENGTH_SHORT).show();
richText.setHighlightColor(Color.TRANSPARENT);
}
};
//配置TextView显示文本
RichTextBuilder richTextBuilder = new RichTextBuilder(this);
richTextBuilder.setContent(content)
.setAtColor(Color.RED)
.setLinkColor(Color.BLUE)
.setTopicColor(Color.YELLOW)
.setListUser(nameList)
.setListTopic(topicModels)
.setTextView(richText)
.setSpanAtUserCallBack(spanAtUserCallBack)
.setSpanUrlCallBack(spanUrlCallBack)
.setSpanTopicCallBack(spanTopicCallBack)
.build();
richEditText = (RichEditText) findViewById(R.id.emoji_edit_text);
emojiLayout.setEditTextSmile(richEditText);
RichEditBuilder richEditBuilder = new RichEditBuilder();
richEditBuilder.setEditText(richEditText)
.setTopicModels(topicModels)
.setUserModels(nameList)
.setColorAtUser("#FF00C0")
.setColorTopic("#F0F0C0")
.setEditTextAtUtilJumpListener(new OnEditTextUtilJumpListener() {
@Override
public void notifyAt() {
JumpUtil.goToUserList(MainActivity.this, MainActivity.REQUEST_USER_CODE_INPUT);
}
@Override
public void notifyTopic() {
JumpUtil.goToTopicList(MainActivity.this, MainActivity.REQUEST_TOPIC_CODE_INPUT);
}
})
.builder();
- 修复了一个特殊场景下让人🥚疼的问题。
- 修复某些情况下删除按键导致的问题
- 优化一些问题
- 增加kotlin lib 与 kotlin demo