【问题标题】:Measuring Height of Multi-Line TextView测量多行TextView的高度
【发布时间】:2018-05-28 20:17:15
【问题描述】:

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

为此,我需要计算TextView 的高度。据了解,应该在视图完全膨胀的情况下进行,所以我将文本设置在OnGlobalLayoutListener 中,然后尝试获取措施。

这很好用,例如对于ImageView,但TextView 的高度似乎是相同的,无论它显示多少行文本。所以textView.getHeight()textView.getMeasuredHeight() 都不会让我得到多行TextView 的实际高度。我怎样才能得到它?

【问题讨论】:

    标签: android textview multiline


    【解决方案1】:

    如果我理解正确,您在OnGlobalLayoutListener 回调中的TextView 上调用setText

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

    您应该:

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

    2) 在 OnGlobalLayoutListener 回调中调用 TextView 上的 post(Runnable)。在runnable里面,可以得到TextView的高度。

    【讨论】:

    • 是的。在OnGlobalLayoutListener中,我先调用了setText(),然后查看了高度。我现在根据您的第一个建议将setText() 移动到活动的onCreate() 并且它有效。我隐藏视图的条件需要一些微调,但这不是问题的主题。感谢您的解决方案!
    猜你喜欢
    • 2015-08-15
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    • 2012-12-25
    • 2011-12-25
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多