我有一个InfiniteListView,可以从Xamarin Forms扩展ListView。 我知道当你在列表中的最后一项时,但我怎么能弄清楚用户是否滚动到列表的顶部?
答案 0 :(得分:1)
不幸的是,Xamarin Forms ListView不会公开Scrolled
事件或Position
属性。因此,您唯一的选择是使用ItemAppearing
和ItemDisappearing
事件。
当您订阅这些事件时,您可以确定第一个单元格是否在首先消失之后再次出现。这实际上并没有给出100%正确的结果,因为只有第一个单元格的一部分才会显示出来。
如果你想要一个完美的检查,你是绝对的顶部,你将不得不求助于自定义渲染器:
在iOS上,您可以使用UITableView上的tableView.contentOffset.y
属性。
在Android上它涉及的更多,因为有多种(但没有直接的)方法来实现这一点。有关一种可能性,请参阅this answer。此方法最初用于保存和恢复滚动位置,因此请根据您的需要进行调整。
其他平台也有类似的想法。检查Xamarin Forms渲染器创建的本机控件,然后在Internet上搜索该特定平台的可能解决方案。