国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Android > 正文

Android中TextView實(shí)現(xiàn)超過(guò)固定行數(shù)顯示“...展開(kāi)全部”

2019-12-12 01:27:26
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

前言

大家都知道,如果要讓TextView只顯示一行,多出部分用省略號(hào)代替的話(huà)非常容易,只需要為xml文件中的TextView控件添加android:singleLine="true"即可,那么如果我想讓它顯示多行的時(shí)候應(yīng)該怎么做呢?

廢話(huà)不多說(shuō),先看效果圖:

展開(kāi)前:


展開(kāi)后:


示例代碼:

工具類(lèi):

 /** * 設(shè)置textView結(jié)尾...后面顯示的文字和顏色 * @param context 上下文 * @param textView textview * @param minLines 最少的行數(shù) * @param originText 原文本 * @param endText 結(jié)尾文字 * @param endColorID 結(jié)尾文字顏色id * @param isExpand 當(dāng)前是否是展開(kāi)狀態(tài) */ public void toggleEllipsize(final Context context,    final TextView textView,    final int minLines,    final String originText,    final String endText,    final int endColorID,    final boolean isExpand) { if (TextUtils.isEmpty(originText)) {  return; } textView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver  .OnGlobalLayoutListener() {  @Override  public void onGlobalLayout() {  if (isExpand) {   textView.setText(originText);  } else {   int paddingLeft = textView.getPaddingLeft();   int paddingRight = textView.getPaddingRight();   TextPaint paint = textView.getPaint();   float moreText = 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.setSpan(new ForegroundColorSpan(context.getResources().getColor     (endColorID)),    temp.length() - endText.length(), temp.length(),    Spannable.SPAN_INCLUSIVE_EXCLUSIVE);   textView.setText(ssb);   } else {   textView.setText(originText);   }  }  if (Build.VERSION.SDK_INT >= 16) {   textView.getViewTreeObserver().removeOnGlobalLayoutListener(this);  } else {   textView.getViewTreeObserver().removeGlobalOnLayoutListener(this);  }  } }); }

使用比較簡(jiǎn)單,參數(shù)列表都有說(shuō)明。

例子:

boolean isExpandDescripe = false;// 初始展開(kāi)狀態(tài)為false,即未展開(kāi);Onclick() {...  // 給textView設(shè)置點(diǎn)擊事件:  case R.id.tv_info_node_describe:  if (isExpandDescripe) {   isExpandDescripe = false;   tv_info_node_describe.setMaxLines(2);// 收起  } else {   isExpandDescripe = true;   tv_info_node_describe.setMaxLines(Integer.MAX_VALUE);// 展開(kāi)  }  textViewSpanUtil.toggleEllipsize(context,   tv_info_node_describe, 2,   text,   "展開(kāi)全部",R.color.gray_discovery_ababab, isExpandDescripe);  break;...}

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)武林網(wǎng)的支持。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 措美县| 日照市| 平乡县| 苍梧县| 德化县| 湟中县| 明光市| 大足县| 磐安县| 华亭县| 禹州市| 香格里拉县| 平乐县| 洛南县| 南康市| 郸城县| 红桥区| 监利县| 古交市| 长垣县| 青神县| 连江县| 岚皋县| 喜德县| 麻江县| 普陀区| 桃园市| 清远市| 镇安县| 博湖县| 扬州市| 金阳县| 塔城市| 莲花县| 临高县| 平顶山市| 肇东市| 定襄县| 龙胜| 中卫市| 云阳县|