Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private val showMoretext = "... See More"
- private val maxVisibleText = 100
- private val maxLine = 5
- fun makeTextViewResizable(tv: TextView, maxLine: Int, expandText: String, comment: String) {
- tv.text = comment
- val vto = tv.viewTreeObserver
- vto.addOnGlobalLayoutListener(object : OnGlobalLayoutListener {
- override fun onGlobalLayout() {
- val text: String
- val lineEndIndex: Int
- val obs = tv.viewTreeObserver
- obs.removeGlobalOnLayoutListener(this)
- if (maxLine == 0) {
- lineEndIndex = tv.layout.getLineEnd(0)
- text = tv.text.subSequence(0, lineEndIndex - expandText.length + 1).toString() + " " + expandText
- } else if (maxLine > 0 && tv.lineCount >= maxLine) {
- lineEndIndex = tv.layout.getLineEnd(maxLine)
- val subStringLength = minOf(lineEndIndex, maxVisibleText)
- text = tv.text.subSequence(0, subStringLength).toString() + " " + expandText
- } else {
- lineEndIndex = tv.layout.getLineEnd(tv.layout.lineCount - 1)
- val subStringLength = minOf(lineEndIndex, maxVisibleText)
- text = tv.text.subSequence(0, subStringLength).toString() + " " + expandText
- }
- tv.text = text
- tv.movementMethod = LinkMovementMethod.getInstance()
- }
- })
- }
Advertisement
Add Comment
Please, Sign In to add comment