直播软件开发,TextView内容过多,超过n行显示“...全文”
直播软件开发,TextView内容过多,超过n行显示“...全文”
1 | /**<br> * TextView超过两行,末尾显示"...全文"<br> * 为避免抖动,需在xml中设置TextView的maxHeight<br> * @param maxLine 最多几行<br> * @param strNum 末尾显示字符数<br> * @param str 末尾显示字符<br> */ <br> open fun setOnGlobalLayout(<br> it: TextView,<br> maxLine: Int = 2,<br> strNum: Int = 3,<br> str: String = "...<font color='#212126'> 全文</font>" <br> ) {<br> val observer = it.viewTreeObserver<br> observer.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener {<br> override fun onGlobalLayout() {<br> if (it.width > 0 && it.height > 0) {<br> it.visibility = View.VISIBLE<br> if (observer.isAlive) {<br> //判断ViewTreeObserver 是否alive,如果存活的话移除这个观察者<br> it.viewTreeObserver.removeOnGlobalLayoutListener(this)<br> }<br> if (it.lineCount > maxLine) {<br> val html1: String =<br> it.text.toString().subSequence(0, it.layout.getLineEnd(maxLine - 1) - strNum).toString()<br> it.text = fromHtml(html1 + str)<br> }<br> }<br> }<br> })<br> }<br> private fun fromHtml(source: String?): Spanned? {<br> return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {<br> Html.fromHtml(source, Html.FROM_HTML_MODE_LEGACY)<br> } else {<br> Html.fromHtml(source)<br> }<br> }<br> |
注意 :为避免抖动,需在xml中设置TextView的maxHeight
1 | <br><TextView<br> android:id= "@+id/tv_content" <br> android:layout_width= "0dp" <br> android:layout_height= "wrap_content" <br> android:maxHeight= "@dimen/dp_40" <br> .../> |
以上就是直播软件开发,TextView内容过多,超过n行显示“...全文”, 更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现