In this article I’m going to show you how to add read more/ less component to android TextView. Finally your text view looks like this.
123456789101112131415161718192021222324252627282930313233343536373839404142434445 private void addReadMore(final String text, final TextView textView) {SpannableString ss = new SpannableString(text.substring(0, 270) + "... read more");ClickableSpan clickableSpan = new ClickableSpan() {@Overridepublic void onClick(View view) {addReadLess(text, textView);}@Overridepublic void updateDrawState(TextPaint ds) {super.updateDrawState(ds);ds.setUnderlineText(false);if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {ds.setColor(getResources().getColor(R.color.color_primary, getTheme()));} else {ds.setColor(getResources().getColor(R.color.color_primary));}}};ss.setSpan(clickableSpan, ss.length() - 10, ss.length() , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);textView.setText(ss);textView.setMovementMethod(LinkMovementMethod.getInstance());}private void addReadLess(final String text, final TextView textView) {SpannableString ss = new SpannableString(text + " read less");ClickableSpan clickableSpan = new ClickableSpan() {@Overridepublic void onClick(View view) {addReadMore(text, textView);}@Overridepublic void updateDrawState(TextPaint ds) {super.updateDrawState(ds);ds.setUnderlineText(false);if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {ds.setColor(getResources().getColor(R.color.color_primary, getTheme()));} else {ds.setColor(getResources().getColor(R.color.color_primary));}}};ss.setSpan(clickableSpan, ss.length() - 10, ss.length() , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);textView.setText(ss);textView.setMovementMethod(LinkMovementMethod.getInstance());}
Comments are closed.