Android ListView中的getMeasuredHeight()方法返回比实际值小的值

3

我一整个早上都在解决这个安卓问题。我有一个ListView,需要计算其高度。

我正在使用以下代码:

int totalHeight = 0;
for (int size = 0; size < myListAdapter.getCount(); size++) {
    View listItem = myListAdapter.getView(size, null, myListView);
    listItem.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
    totalHeight += listItem.getMeasuredHeight();
}

我在这里找到了一些有关IT技术方面的内容,但是对于列表项某种布局的返回值比实际值要小(而其他情况下则很准确),如果使用它来重置列表的高度,最终会将其内容裁剪掉。我看了很多相关的帖子,其中一个提供的解决方法是将布局中所有对象的高度设置为"wrap_content",但是对我并没有起作用。
无论在哪里,我都找不到有效的解决方案。有人能帮忙吗?
真诚地, -Lior

我想像你一样完成工作,但问题在于当页面加载时,高度和宽度已经设置好了,而且你只能使用高度进行操作。你必须为每一行设置静态高度。 - Shayan Pourvatan
我不明白。这在不同的布局下运行得很好(我向列表中添加内容,然后重新定义高度)。 - Lior Z
1个回答

0

经过长时间的搜索,我找到了这个帖子:

如何强制listView的高度为每行可见的大小?

它给了我解决方案...有趣的是,我花了很长时间才找到它,因为它比我之前遇到的数十页关于此问题的页面更准确。

希望这能帮助传播这个信息 :)

Lior


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接