我一直在寻找这个难题的答案,但我似乎找不到任何确定的东西。基本上,ListView中的项目(和分隔符)的高度高于实际的ListView本身,即屏幕外是否有任何列表视图项目(或部分项目或页脚项目)。
ListView中的某个地方必须知道它是否可以滚动(以及有多高),因为它会创建滚动条。
我尝试了getMaxScrollAmount()
方法(错误),检查了getLastVisiblePosition()
方法(如果最后一项是半显示则不起作用),测量适配器中所有项目的高度(表现失败,错误)。
在iOS中,UITableView的一个非常简单的contentSize
属性有这个答案,肯定有一个简单的解决方案。
另外,我想在用户实际进行任何滚动之前知道(但很明显在布局发生之后)。
答案 0 :(得分:3)
检查listView.canScrollList(-1) || listView.canScrollList(1)
是否适合您?它与绘制滚动条具有相同的机制。
答案 1 :(得分:1)
列表计算出子视图大小后(例如在layoutChildren()之后),你可以测试:
listView.getFirstVisiblePosition() == 0 && listView.getLastVisiblePosition() < listView.getCount() - 1