gpt4 book ai didi

android - 带有包装文本的 TextView 的 getMeasuredHeight()

转载 作者:IT老高 更新时间:2023-10-28 23:34:07 32 4
gpt4 key购买 nike

我正在尝试确定 TextView 在绘制之前 的高度。我正在使用以下代码来做到这一点:

TextView textView = (TextView) findViewById(R.id.textview);
textView.setText("TEST");
int widthSpec = MeasureSpec.makeMeasureSpec(LayoutParams.MATCH_PARENT, MeasureSpec.EXACTLY);
int heightSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
textView.measure(widthSpec, heightSpec);
System.out.println("MeasuredHeight: " + textView.getMeasuredHeight());

输出为 MeasuredHeight: 28。没有错。

但是,当我给 TextView 一个长文本字符串时,会发生换行,它仍然给出单行的高度而不是两行:

(...)
textView.setText("TESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTEST");
(...)

输出是 MeasuredHeight: 28,我期望 MeasuredHeight: 56

为什么它没有给我正确的值(value),我怎样才能获得正确的值(value)?

最佳答案

这是一个 onCreate 方法。您的整个 View 层次结构尚未测量和布局。所以 textView 的父级不知道它的宽度。这就是为什么 textView 的尺寸不受其父尺寸的限制。

尝试将您的线路更改为:

int widthSpec = MeasureSpec.makeMeasureSpec(200, MeasureSpec.EXACTLY);

因此它使您的 textview 宽度等于 200 像素。

如果您解释为什么需要 textview 的高度,也许我们可以帮助您。

关于android - 带有包装文本的 TextView 的 getMeasuredHeight(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14386584/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com