Android TextView 是否有省略号,动态获取和设置行数

目录

前言

一、TextView设置最大行与省略号

二、检查文本是否省略

三、实战


前言

        最近在做一个效果,就是当文本显示超出2行时,文本末尾出现...(省略号),并且显示一个【展开】的按钮。点击时【展开】全部文本内容,并且按钮由【展开】变成【收起】。点击【收起】文本恢复到一开始状态。

一、TextView设置最大行与省略号

单行显示,如果超出的话用“…”省略号显示,只要设置:

android:ellipsize="end"
android:singleLine="true"

多行显示,超出的部分使用“…”显示,那么,设置如下:

android:lines="2"
android:ellipsize="end"

动态代码设置行数与省略号:

mTxt.setMaxLines(2);

mTxt.setEllipsize(TextUtils.Tru
Android中,实现TextView中文字过长时显示省略号并支持点击展开的功能,通常通过设置`android:singleLine="false"`属性以及监听`android:focusable="true"``android:focusableInTouchMode="true"`来实现。以下是基本步骤: 1. **布局设计**: 在XML布局文件中,给TextView添加适当的属性: ```xml <TextView android:id="@+id/text_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="这是一段非常非常长的文字..." android:maxLines="5" // 设置最大行数,默认为1,超过会截断 android:ellipsize="end" // 设置超出部分显示省略号 android:focusable="true" android:focusableInTouchMode="true"/> ``` 2. **点击事件处理**: 在对应的Activity或Fragment的Java或Kotlin代码中,为TextView设置点击监听器,例如: ```java TextView textView = findViewById(R.id.text_view); textView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (!textView.isExpanded()) { // 展开文本 textView.setMaxLines(Integer.MAX_VALUE); // 展开到最后一 } else { // 缩回文本 textView.setMaxLines(5); // 回收到默认限制 } textView.setEllipsize(null); // 展开时去掉省略号 textView.requestLayout(); // 强制布局更新 textView.isExpanded() ? textView.setText("展开更多") : textView.setText(textView.getText()); } }); ``` 在这个例子中,`isExpanded()`方法用于检查当前状态,并相应地调整TextView为。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

艾阳Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值