如何判断ListView项的高度是否大于实际ListView的高度(即列表视图是否可以滚动)?

时间:2013-11-20 13:10:27

标签: android listview android-listview

我一直在寻找这个难题的答案,但我似乎找不到任何确定的东西。基本上,ListView中的项目(和分隔符)的高度高于实际的ListView本身,即屏幕外是否有任何列表视图项目(或部分项目或页脚项目)。

ListView中的某个地方必须知道它是否可以滚动(以及有多高),因为它会创建滚动条。

我尝试了getMaxScrollAmount()方法(错误),检查了getLastVisiblePosition()方法(如果最后一项是半显示则不起作用),测量适配器中所有项目的高度(表现失败,错误)。

在iOS中,UITableView的一个非常简单的contentSize属性有这个答案,肯定有一个简单的解决方案。

另外,我想在用户实际进行任何滚动之前知道(但很明显在布局发生之后)。

2 个答案:

答案 0 :(得分:3)

检查listView.canScrollList(-1) || listView.canScrollList(1)是否适合您?它与绘制滚动条具有相同的机制。

reference

答案 1 :(得分:1)

列表计算出子视图大小后(例如在layoutChildren()之后),你可以测试:

listView.getFirstVisiblePosition() == 0 && listView.getLastVisiblePosition() < listView.getCount() - 1