代码之家  ›  专栏  ›  技术社区  ›  jerry

测量多行文本视图的高度

  •  0
  • jerry  · 技术社区  · 6 年前

    我用一堆子视图创建了一个自定义视图。根据可用空间的不同,此子视图可能会显示其部分或全部子视图。不适合的次要元素应隐藏。其中一个子视图是多行 TextView 这可能适合也可能不适合。

    为了使这个有效,我需要计算 文本框 . 应该在视图完全膨胀时进行,因此我将文本设置为 OnGlobalLayoutListener 然后试着去做测量。

    这很好用,例如 ImageView 但是 文本框 不管显示多少行文本,其高度似乎都相同。所以两者都不是 textView.getHeight() 也不 textView.getMeasuredHeight() 会得到多行的实际高度 文本框 . 我怎么能拿到?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Moonbloom    6 年前

    如果我理解正确,你就给我打电话 setText TextView OnGlobalLayoutListener 回拨?

    当时,高度还没有计算出来。

    您应该:

    1)在回调之前立即设置文本。然后在回调中获取高度。

    2)呼叫 post(Runnable) 在文本视图上,而在 Ongloballayoutlistener公司 回拨。在runnable中,您可以获取textView高度。