Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void onViewMore(final TextView comment, final ListCommentBean itemBean, final int position, final TimelineDetailAdapterListener listener) {
- String expandText = itemBean.isViewMore ? itemView.getResources().getString(R.string.see_Less) : itemView.getResources().getString(R.string.see_more);
- String text;
- int lineEndIndex;
- if (itemBean.isViewMore) {
- lineEndIndex = comment.getLayout().getLineEnd(comment.getLayout().getLineCount() - 1);
- text = comment.getText().subSequence(0, lineEndIndex) + " " + expandText;
- } else {
- lineEndIndex = comment.getLayout().getLineEnd(Constants.MAX_LINE_COMMENT - 1);
- text = comment.getText().subSequence(0, lineEndIndex - expandText.length() + 1) + " " + expandText;
- }
- comment.setText(text);
- comment.setHighlightColor(Color.TRANSPARENT);
- comment.setMovementMethod(LinkMovementMethod.getInstance());
- comment.setText(addClickablePartTextViewResizable(Html.fromHtml(comment.getText().toString()), comment, expandText, itemBean, position, listener), TextView.BufferType.SPANNABLE);
- }
- private SpannableStringBuilder addClickablePartTextViewResizable(Spanned strSpanned, final TextView comment, String expandText, final ListCommentBean itemBean, final int position, final TimelineDetailAdapterListener listener) {
- String str = strSpanned.toString();
- SpannableStringBuilder ssb = new SpannableStringBuilder(strSpanned);
- ssb.setSpan(new ClickableSpan() {
- @Override
- public void updateDrawState(TextPaint ds) {
- ds.setColor(ds.linkColor); // you can use custom color
- ds.setUnderlineText(false); // this remove the underline
- }
- @Override
- public void onClick(View widget) {
- if (itemBean.isViewMore) {
- itemBean.isViewMore = false;
- } else {
- itemBean.isViewMore = true;
- }
- listener.onViewMore(itemBean, position);
- }
- }, str.indexOf(expandText), str.indexOf(expandText) + expandText.length(), 0);
- return ssb;
- }
- }
Add Comment
Please, Sign In to add comment