我一直在努力研究如何计算Android ListView中滚动内容的y位置。一致认为,Android根本不会向您提供此信息,您必须通过基于getChildAt(0).top
和getFirstVisiblePosition()
方法进行各种计算来解决此问题。
我的问题是尝试了解为什么Android不会向您提供此信息。看起来列表视图实际上必须以某种方式知道这个值才能绘制滚动条。或者至少知道它是一个百分比? ViewPager的onPageScrolled()
方法似乎做了同样的事情。这也是iOS中的一个小问题。
答案 0 :(得分:4)
ListView与您想到的ScrollView不同。
例如,如果您有10个项目使用2048px hight。如果将它们包装在滚动视图中,则内部内容的高度为2048px。但是,在ListView中,将动态填充10个项目。它总是在显示区域,因此scrollY = 0。
如果你真的想要计算ListView的ScrollY,你可能需要自己处理它。您可以使用getFirstVisiblePosition()来获取当前顶部可见项的索引。并考虑每个列表项和列表分隔符的高度,您可能能够获得总的scrollY值。