thieumao

Show More Android Java

Jan 28th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.36 KB | None | 0 0
  1. private void onViewMore(final TextView comment, final ListCommentBean itemBean, final int position, final TimelineDetailAdapterListener listener) {
  2.  
  3. String expandText = itemBean.isViewMore ? itemView.getResources().getString(R.string.see_Less) : itemView.getResources().getString(R.string.see_more);
  4.             String text;
  5.             int lineEndIndex;
  6.  
  7.             if (itemBean.isViewMore) {
  8.                 lineEndIndex = comment.getLayout().getLineEnd(comment.getLayout().getLineCount() - 1);
  9.                 text = comment.getText().subSequence(0, lineEndIndex) + " " + expandText;
  10.             } else {
  11.                 lineEndIndex = comment.getLayout().getLineEnd(Constants.MAX_LINE_COMMENT - 1);
  12.                 text = comment.getText().subSequence(0, lineEndIndex - expandText.length() + 1) + " " + expandText;
  13.             }
  14.             comment.setText(text);
  15.  
  16.             comment.setHighlightColor(Color.TRANSPARENT);
  17.             comment.setMovementMethod(LinkMovementMethod.getInstance());
  18.  
  19.             comment.setText(addClickablePartTextViewResizable(Html.fromHtml(comment.getText().toString()), comment, expandText, itemBean, position, listener), TextView.BufferType.SPANNABLE);
  20.         }
  21.  
  22.         private SpannableStringBuilder addClickablePartTextViewResizable(Spanned strSpanned, final TextView comment, String expandText, final ListCommentBean itemBean, final int position, final TimelineDetailAdapterListener listener) {
  23.             String str = strSpanned.toString();
  24.  
  25.             SpannableStringBuilder ssb = new SpannableStringBuilder(strSpanned);
  26.             ssb.setSpan(new ClickableSpan() {
  27.                 @Override
  28.                 public void updateDrawState(TextPaint ds) {
  29.                     ds.setColor(ds.linkColor);    // you can use custom color
  30.                     ds.setUnderlineText(false);    // this remove the underline
  31.                 }
  32.  
  33.                 @Override
  34.                 public void onClick(View widget) {
  35.                     if (itemBean.isViewMore) {
  36.                         itemBean.isViewMore = false;
  37.                     } else {
  38.                         itemBean.isViewMore = true;
  39.                     }
  40.                     listener.onViewMore(itemBean, position);
  41.                 }
  42.             }, str.indexOf(expandText), str.indexOf(expandText) + expandText.length(), 0);
  43.  
  44.             return ssb;
  45.         }
  46.     }
Add Comment
Please, Sign In to add comment