美文网首页
Android 动态设置TextView line 问题

Android 动态设置TextView line 问题

作者: _发强 | 来源:发表于2022-03-09 18:23 被阅读0次

    今天在处理一个 TextView 文本过长,需要添加一个 ”展开全文“,和 ”收起更多“ 的功能

    类似这样的

    image.png
    在处理代码的时候,首先要先给 TextView 设置内容, 然后才能判断是否需要显示 ”展开全部“ 的标签,
    那么这里就有第一个问题了:
    • 填充文本之后,获取到的 TextView linesCount一直为 0
      解决方法:
    textView.post {
      // 在这里去获取 textView 的 linesCount
      val lines = textView.lineCount  // lines 才会有值,
       // 然后再是根据当前的 lines 去初始化展开状态,
      if (lines > 3) {
        .....   // 执行一些操作.
      }
    }
    

    初始化展开状态完成后,我们需要通过点击事件去改变 文本的显示状态,是否展开,
    这个时候,就有第二个问题了,

    • setLines 或者 maxLines 不好用,
      解决方法:
      不能通过 textView.getLinesCount 来作为条件,条件无效,
      必须要通过 自己去定义一个 isExpand 标识,来作为是否展开的条件,
      另外,设置展开收起 的方法还不一样:
                if (text == "收起更多") {
                    newLine = 3
                    tvExpand.text = "展开更多"
                    tvDesc.setLines(newLine)
                } else {
                    newLine = Int.MAX_VALUE
                    tvExpand.text = "收起更多"
                    tvDesc.maxLines = newLine
                }
    

    相关文章

      网友评论

          本文标题:Android 动态设置TextView line 问题

          本文链接:https://www.haomeiwen.com/subject/bpztdrtx.html