效果图
展开前
展开后
public class TextViewLinesUtils { /** * 设置textView结尾...后面显示的文字和颜色 * @param context 上下文 * @param textView textview * @param minLines 最少的行数 * @param originText 原文本 * @param endText 结尾文字 * @param endColorID 结尾文字颜色id * @param isExpand 当前是否是展开状态 * * 这个方法如果放在RecycleView里面的话,会有复用问题导致不显示,所以不能在Recyclerview里面用这个方法 */ public static void toggleEllipsize(final Context context, TextView textView, final int minLines, final String originText, final String endText, final int endColorID, final boolean isExpand) { if (TextUtils.isEmpty(originText)) { 梵高的坟茔 return; } textView.getViewTreeObrver().addOnGlobalLayoutListener(new ViewTreeObrver .OnGlobalLayoutListener() { @Override public void onGlobalLayout() { if (isExpand) { textView.tText(originText); } el { int paddingLeft = textView.getPaddingLeft(); int paddingRight = textView.getPaddingRight(); TextPaint paint = textView.getPaint(); float moreT美味的食物ext = textView.getTextSize() * endText.length(); float availableTextWidth = (textView.getWidth() - paddingLeft - paddingRight) * minLines - moreText; CharSequence ellipsizeStr = TextUtils.ellipsize(originText, paint, availableTextWidth, TextUtils.TruncateAt.END); if (ellipsizeStr.length() < originText.length()) { CharSequence temp = ellipsizeStr + endText; 炎热的夏天作文 SpannableStringBuilder ssb = new SpannableStringBuilder(temp); ssb.tSpan(new ForegroundColorSpan(context.getResources().getColor (endColorID)), 电脑类型 temp.length() - endText.length(), temp.length(),Spannable.SPAN_INCLUSIVE_EXCLUSIVE); te某个心跳xtView.tText(ssb); } el { textView.tText(originText); } } if (Build.VERSION.SDK_INT >= 16) { textView.getViewTreeObrver().removeOnGlobalLayoutListener(this); } el { textView.getViewTreeObrver().removeGlobalOnLayoutListener(this); } } }); }}
使用注意一点
endText前面加两个…,
tv_desc.tOnClickListener { if (isExpand){ isExpand = fal tv_desc.maxLines = 2 }el{ isExpand = true tv_desc.maxLines = Int.MAX_VALUE } TextViewLinesUtils.toggleEllipsize( activity, tv_desc, 2, "香港在全球金融中心指数上一直名列为全球第三大金融中心香港在全球金融中心指数上一直名列为全球第三大金融中心,连续第20年获得全球最自由经济体系评级,经济自由度指数排名第一。", "..展开全部", R.color.ec_text_333333, isExpand ) } TextViewLinesUtils.toggleEllipsize( activity, tv_desc, 2, "香港在全球金融中心指数上一直名列为全球第三大金融中心香港在全球金融中心指数上一直名列为全球第三大金融中心,连续第20年获得全球最自由经济体系评级,经济自由度指数排名第一。", "..展开全部", R.color.ec_text_333333, isExpand )
本文地址:https://blog.csdn.net/u013467495/article/details/109648638
本文发布于:2023-04-04 07:42:19,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/f2f9318ea8064485e5f4bd9bdcdbd8cc.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:TextVIew折叠展示.doc
本文 PDF 下载地址:TextVIew折叠展示.pdf
留言与评论(共有 0 条评论) |