获取TextView的度量高度而不添加到视图层次结构

时间:2013-07-19 12:11:54

标签: android

我遵循要求

  1. 我需要从屏幕顶部到底部构建一个左右放置树叶的树。我不能把叶子放在ListView中,因为两个叶子将在相同的偏移量中。

  2. 我不知道物品的高度。

  3. 我需要预先计算动态内容的高度,例如不同长度的字符串。

  4. 问题:

    我如何预先计算将放入TextView小部件中的sting的高度,如下所示:

       <TextView
        android:id="@+id/note_content"
        android:layout_width="40sp"
        android:layout_height="wrap_content"
        android:maxLines="5" />
    

    enter image description here

2 个答案:

答案 0 :(得分:0)

用它来计算textview的高度和宽度

    textView.getViewTreeObserver().addOnGlobalLayoutListener(
            new OnGlobalLayoutListener() {
                public void onGlobalLayout() {
                 h=textView.getHeight();
                 w=textView.getWidth();
        textView.getViewTreeObserver()
                            .removeGlobalOnLayoutListener(this);
    }

但是在xml中不要将textview指定为包装内容。因为它会给你价值0。

答案 1 :(得分:0)

创建textView,设置LayoutParams,设置文本,调用它的测量方法并读取测量值。顺便说一句,你可以测量文本,而不是textView(见StaticLayout)。

我认为您最好创建自定义布局,以便实现所有“离开测量”算法。 Check this lesson.自定义布局非常简单)