核心代码:
holder.tvShowText.setText(mDatas.get(position)); ViewTreeObserver viewTreeObserver = holder.tvShowText.getViewTreeObserver(); viewTreeObserver.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener(){ @Override public boolean onPreDraw() { int lineCount = holder.tvShowText.getLineCount(); if(lineCount > 3){ int lineEndIndex = holder.tvShowText.getLayout().getLineEnd(2); String text = holder.tvShowText.getText().subSequence(0, lineEndIndex - 3) + "...查看";//这里进行自定义省略号 SpannableString spannableString = new SpannableString(text); spannableString.setSpan(new ForegroundColorSpan(Color.BLUE), text.length() -2, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); holder.tvShowText.setText(spannableString); return false;//达到了最大行数,停止绘制 } return true; }