【发布时间】:2017-03-16 01:38:10
【问题描述】:
我创建了一个可扩展的卡片视图,其中包含标题、副标题和详细文本视图。
现在我想根据 wrap_content 的文本视图中的文本高度动态获取高度。所以我在 onClickListener 的视图中使用了.measure 方法:
holder.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
holder.getDetailText().measure(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
Log.i("Project", ""+ holder.getDetailText().getMeasuredHeight());
}
});
我得到了 57 的高度和这段文字:
holder.getDetailText().setText("Test Test Test Test");
如果我现在在其中添加一个更长的文本,它会自动换行成多行,我会得到相同的高度 57
holder.getDetailText().setText("Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test ...");
只要我在其中放入带有新换行符的文本,一切都会按预期工作,导致高度为 155
holder.getDetailText().setText("Test\nTest\nTest");
那么如何使用自动换行的文本获取 textview 的实际高度呢?
更新:
这是一个自动换行的很长的文本,但我得到的高度是 57,所以它只会显示第一行,因为 getMeasuredHeight 只返回这个 (57) 高度。
我所期望的,但不起作用,因为 getMeasuredHeight 返回错误的高度:
如果我手动放置\n 提要,那么没有自动换行getMeasuredHeight 返回正确的高度,一切都按预期工作。
.measure 似乎忽略了宽度,因为即使我放一个常数值,getMeasuredHeight 返回的高度也不会改变。
【问题讨论】:
-
当需要计算textView的高度时。能否请您指定场景,以便我可以帮助您
-
我有一个 recyclerview 项目根据高度和文本视图中的文本数量扩展,因此扩展的高度将适合文本。
-
如何使用自动换行的文本获取 textview 的实际高度?表示自动表示的意思
-
如果你在 textview 中放了很长的文本,Android 会自动将长文本放在多行中。
-
所以,textview 的大小会增加,或者如果它会进入下一行,那么您想获得 textView 的高度吗?可以的话可以附上截图吗
标签: android android-layout height android-view measure