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

一、实现效果


二、项目地址: 

https://github.com/Carbs0126/ExpandableTextView

三、集成

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

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

XML里引用

<cn.carbs.android.expandabletextview.library.ExpandableTextView
        android: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() {
            @Override
            public void onExpand(ExpandableTextView view) {
                Log.i("AAAAAAAA", "展开") ;
            }

            @Override
            public 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"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值