一、实现效果

二、项目地址:

https://github.com/Carbs0126/ExpandableTextView

三、集成

app的build.gradle文件里添加依赖

compile 'cn.carbs.android:ExpandableTextView:1.0.3'

XML里引用

<cn.carbs.android.expandabletextview.library.ExpandableTextViewandroid:id="@+id/etv"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="50dp"android:text="啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊"android:textColor="#333333"/>

代码里

        
        ExpandableTextView expandableTextView = (ExpandableTextView) findViewById(R.id.etv);//展开收起监听expandableTextView.setExpandListener(new ExpandableTextView.OnExpandListener() {@Overridepublic void onExpand(ExpandableTextView view) {Log.i("AAAAAAAA", "展开") ;}@Overridepublic void onShrink(ExpandableTextView view) {Log.i("AAAAAAAA", "收起") ;}});

到此为止,基本使用就已经可以了!

下面记录一下怎样设置属性,更好的适用于我们自己的项目:

收缩状态下最多显示几行:

app:etv_MaxLinesOnShrink="3"

收缩状态下尾部默认字符:默认...

app:etv_EllipsisHint="..."

收缩状态下尾部的提示字符:默认为“展开”

app:etv_ToExpandHint="展开"

展开状态下尾部的提示字符:默认为“收起”

app:etv_ToShrinkHint="收起"

展开提示和收缩提示与正文之间插入的文本:默认“”

app:etv_GapToExpandHint="展开提示与正文之间插入的文本"
app:etv_GapToShrinkHint="收缩提示与正文之间插入的文本"

点击正文部分是否可以切换展开收缩状态:默认 true

app:etv_EnableToggle="false"

是否显示展开提示:默认 true

app:etv_ToExpandHintShow="false"

是否显示收缩提示:默认 true

app:etv_ToShrinkHintShow="false"

展开提示字符颜色:

app:etv_ToExpandHintColor="#333333"

收缩提示字符颜色:

app:etv_ToShrinkHintColor="#333333"

点击展开提示字符时,提示字符的背景色

app:etv_ToExpandHintColorBgPressed="#333333"

点击收缩提示字符时,提示字符的背景色

app:etv_ToShrinkHintColorBgPressed="#333333"

设置初始状态,展开还是收缩:默认是收缩状态

app:etv_InitState="expand"

砖垛之ExpandableTextView-自定义可以动态展开/收缩显示长文本的TextView相关推荐

  1. android ExpandableTextView-自定义可以动态展开/收缩显示长文本的TextView

    前言: 为了保持界面UI的整洁以及将尽可能多的内容显示在有限的空间中,往往需要将长度过长的TextView进行内容截取.本控件满足了TextView可在"完整内容"与"截 ...

  2. jqGrid subGrid配置 如何首次加载动态展开所有的子表格

    有时候需求需要默认加载表格的时候把子表格的数据也显示出来,经过研究相关SubGrids API配置如下: 属性 类型 描述 默认值 subGrid boolean 设置为true启用子表格.如果启用子 ...

  3. 自定义按钮动态变化_新闻价值的变化定义

    自定义按钮动态变化 I read Bari Weiss' resignation letter from the New York Times with some perplexity. In par ...

  4. jQuery 设计和自定义一个带展开动画效果的导航栏

    设计和自定义一个带展开动画效果的导航栏,尝试写了一个demo,加上设计和调试差不多写了一天吧. 这里就来讲讲如何从设计->写布局->写样式->写JS代码 完成一个完全自己设计的导航栏 ...

  5. 用Applescript 实现自定义的动态壁纸

    用Applescript 实现自定义的动态壁纸 1. 动态壁纸 Dynamic Wallpaper 讲到在苹果上整动态壁纸,就得先聊聊他自家的方案.最早苹果在macOS Mojave 里引入了这个概念 ...

  6. .NET 5 自定义配置(动态配置,配置中心) 案例版

    .NET 5 自定义配置(动态配置,配置中心) 案例版 为啥要自定义配置 有些功能可能自己用着简单,不需要那么复杂.想着简单粗暴的解决问题,可控的实现代码控制,就可以用这样的方式实现. 另外,如果对配 ...

  7. android 自定义progressbar demo,Android自定义View――动态ProgressBar之模仿360加速球

    在之前一篇文章中我们讲解了三种ProgressBar的做法,详见-><Android 自定义View--自定义ProgressBar >.这一节中我们模仿360加速球制作一个动态Pr ...

  8. 一种新的支付技术---自定义双向动态密码介绍

    长期以来,在密码领域,消费者一直使用传统固定密码方式,随着互联网和金融的发达,随之带来的安全问题也日益突出,为提高账户安全性,各种安全设备如U盾,手机短信验证等也涌现出来,这虽然部分上提高了安全性,但 ...

  9. Vue结合element-ui实现导航菜单展开收缩小功能

    1. 先上个效果图 这里我把控制菜单收缩的放在中间了,是可以随便调整的. 2. 问题思路想法 ① 首先是布局,这就是个很经典的后台管理系统的容器页面,这里分为上下结构,上面一般放些系统logo. 登录 ...

最新文章

  1. linux发布java网站_Linux下部署java web项目
  2. rabbitMQ简单使用
  3. 字典对中文字符串进行排序 python_Python基础入门:字符串和字典
  4. k均值算法原理详细讲解以及matlab代码实现
  5. python tkinter listbox_Python3 tkinter基础 Listbox for+insert 将list中元素导入listbox中
  6. python买东西_Python实战之ATM+购物车
  7. 怎么把html转换成jpg6,html转为图片(六):xhtmlrenderer
  8. 信息学奥赛一本通 2051:【例3.1】偶数
  9. android 加载系统私有库,Android 搭建私有maven仓库及上传项目
  10. 【2019/5/24】周进度报告
  11. CentOS7-下搭建Maven私服Nexus环境
  12. 问题解决:Unlink of the file ‘.git/objects/pack/….idx’ failed. Should I try again?
  13. hdu4588Count The Carries
  14. Spring-BeanPostProcessor的执行顺序
  15. php发卡v6_GitHub - Cghang/vfkphp: V发卡 完全开源免费的个人自动发卡解决方案
  16. 海外邮件收发阻碍多?【企业邮箱怎么申请】
  17. 我的世界java甘蔗机_我的世界全自动甘蔗机器制作教程
  18. MTK虚拟sensor梳理
  19. 1082 Read Number in Chinese
  20. html5中ol的意思,详解HTML5中ol标签的用法

热门文章

  1. wd移动硬盘支持linux,玩转移动硬盘存储之WD篇
  2. 袖珍电子书挑战百度早知道
  3. HTML行内元素和块级元素
  4. matlab rbf核函数,四类核函数(Sigmoid+RBF)
  5. 怎样去除织梦版权信息中的Power by DedeCms
  6. oracle 配置白名单
  7. 惠普服务器更改系统,惠普完善服务器操作系统环境
  8. Camtasia2023电脑录屏视频自动生成字幕软件
  9. [MySQL]-压力测试之性能监测指标
  10. 不用安装oracle客户端也可以用plsql连接远程oracle