实现类似微博内容,@用户,链接高亮,@用户和链接可点击跳转,可展开和收回的TextView
实现类似微博内容,@用户,链接高亮,@用户和链接可点击跳转,可展开和收回的TextView。觉得好用别忘了star哦,你的star是对我最大的激励
项目国际化翻译解决方案,支持Android、iOS、Flutter、前端Vue、后端PHP等等,点几下按钮就能实现翻译内容的自动抓取和翻译后文件的自动生成,适合各类场景下的国际化需求。详情请查看:https://github.com/MZCretin/Eva-Translate 欢迎star
此系列是大道至简的起始,将一系列简单恶心的操作封装起来,框架么,可以败絮其中,但一定要金絮其外!
Gradle:
implementation 'com.github.MZCretin:ExpandableTextView:v1.6.1'// if u use AndroidX, use the following
implementation 'com.github.MZCretin:ExpandableTextView:v1.6.1-x'2019-07-04 12:06:06更新,如果你需要监听展开和回收的时间监听,但是不需要控件真正的执行展开和回收操作,你可以在添加展开和收回操作的时候置顶是否需要真正执行展开和回收操作,具体效果可以参考效果图第2条的第二个,依赖版本请使用tag版本v1.6.1,查看说明
implementation 'com.github.MZCretin:ExpandableTextView:v1.6.1'2019-05-20 15:14:04更新,如果你需要展示链接但是不想让链接自动转换成"网页链接"的形式,你可以禁用自动转换功能;如果你希望知道是否满足展开/收起的条件,添加一个监听就好了,依赖版本请使用tag版本1.6.0,查看说明
implementation 'com.github.MZCretin:ExpandableTextView:v1.6.0'2019-03-14 10:25:57更新,修复在有些手机上偶尔会出现白屏,加载不出内容的情况,依赖版本请使用tag版本1.5.3
implementation 'com.github.MZCretin:ExpandableTextView:v1.5.3'2018-10-09 17:20:45 更新,新增对展开和回收的点击事件监听,依赖版本请使用tag版本v1.5.2
implementation 'com.github.MZCretin:ExpandableTextView:v1.5.2'2018-09-28 09:37:28 更新,优化了将"展开"和"收回"固定最右显示时中间空格数量的计算方式,依赖版本请使用tag版本v1.5.1,查看说明
implementation 'com.github.MZCretin:ExpandableTextView:v1.5.1'2018-09-27 09:18:14 更新
implementation 'com.github.MZCretin:ExpandableTextView:v1.5'2018-09-22 23:32:16 更新,新增自定义规则解析,具体效果请查看效果图的第10条,依赖版本请使用tag版本v1.4,查看说明
implementation 'com.github.MZCretin:ExpandableTextView:v1.4'2018-09-21 11:51:24 更新,优化了demo的代码逻辑和注释
2018-09-21 08:45:13 更新,修复了自定义设置展开和收回内容无效的问题,依赖请使用tag版本v1.3.1
implementation 'com.github.MZCretin:ExpandableTextView:v1.3.1'2018-09-20 16:31:13 更新
2018-09-03 17:39:56 修复一些bug,链接sheSpan位置错误,未生成release,等待下次修复其他bug一起打tag依赖包,使用请本地依赖使用
2018-08-31 17:31:56 优化设置padding对宽度造成的影响,依赖请使用tag版本v1.2
implementation 'com.github.MZCretin:ExpandableTextView:v1.2'2018-08-31 11:21:22 在V1.0的基础上进行了优化,依赖请使用tag版本v1.1
implementation 'com.github.MZCretin:ExpandableTextView:v1.1'Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}dependencies {
implementation 'com.github.MZCretin:ExpandableTextView:请使用最新版本'
}扫描二维码下载:
……如果你需要监听展开和回收的时间监听,但是不需要控件真正的执行展开和回收操作,你可以在添加展开和收回操作的时候置顶是否需要真正执行展开和回收操作,具体效果可以参考效果图第2条的第二个控件效果:
//添加展开和收回操作 只触发点击 不真正触发展开和收回操作
expandableTextView.setExpandOrContractClickListener(type -> {
if (type.equals(StatusType.STATUS_CONTRACT)) {
Toast.makeText(MainActivity.this, "收回操作,不真正触发收回操作", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "展开操作,不真正触发展开操作", Toast.LENGTH_SHORT).show();
}
},false);如果你需要展示链接但是不想让链接自动转换成"网页链接"的形式,你可以禁用自动转换功能,具体效果可以参考效果图第11条;如果你希望知道是否满足展开/收起的条件,添加一个监听就好了:
//监听是否初始化完成 在这里可以获取是否支持展开/收回
views[10].setOnGetLineCountListener(new ExpandableTextView.OnGetLineCountListener() {
@Override
public void onGetLineCount(int lineCount, boolean canExpand) {
Toast.makeText(MainActivity.this, "行数:" + lineCount + " 是否满足展开条件:" + canExpand, Toast.LENGTH_SHORT).show();
}
});如果你需要将"展开"和"收回"始终居右显示,你需要开启它,具体效果可以参考效果图第9条
//需要先开启始终靠右显示的功能
views[8].setNeedAlwaysShowRight(true);
//或者在xml中开启
app:ep_need_always_showright="true"如果你觉得目前@用户和网页链接两种形式并不能完全满足你的业务,那么我提供了一个新的自定义规则给你,让你可以更加灵活的去适应自己的业务。
比如上面实现效果的第9条中,我们通过自定义规则对文字中的"--习大大"和"Github地址"进行了自定义规则,让其高亮显示并且可以添加触发相应的事件。
具体做法是:
app:ep_need_self="true"如果你希望在RecyclerView(或者ListView)中使用,请认真阅读demo中在RecyclerView中的使用,细节都在注释中。
如果你需要在列表中保留之前的展开或收回状态,特殊说明的有以下几点:
暂无开放 Issues,或尚未同步最近议题。