当并非所有行都有内容时,不同的 TextView 高度

问题描述 投票:0回答:1

我有一个 Lines = 2 的 TextView。如果我设置一个短文本并且只显示 1 行,或者我设置一个较长的文本并且显示 2 行,我会在 TextView 的高度上得到不同的结果。这似乎是 TextView 的 onMeasure 函数的问题。在代码中我可以看到,首先计算布局的高度,然后为每个空行添加行高。 Javadoc 注释如下:

请注意,文本中的标记可能会导致个别行高于或低于此高度,并且布局可能包含额外的第一行或最后一行填充。

这些 TextView 在水平 RecyclerView 中使用,我需要每个列表项具有相同的高度,这就是为什么我将行固定为 2。但显然这并不能使其具有相同的高度。如何解决这个问题?

有关 TextView 的一些额外信息:

  • 字体:Helvetica Neue Lt Std Bold
  • 文字大小:18 sp
  • 行高:32 sp

要么与 getLineHeight 或 Layout 的计算中未使用 lineheight 有关。或者字体本身的东西。编辑:这绝对是字体的问题,因为 lineheight + robots 不会产生这个问题。

在这里您可以看到高度差异: enter image description here

这里的 TextView 具有相同的高度,因为它们都有相同的行数。 enter image description here

android textview measure
1个回答
0
投票

要在 recyclerView 中获得相同的元素高度,您可以使用如下代码:

// 如果需要,设置布局管理器 recyclerView.setLayoutManager();

//强制其具有固定大小 recyclerView.setHasFixedSize(true);

© www.soinside.com 2019 - 2024. All rights reserved.