Xamarin Forms ListView滚动到顶部?

时间:2017-04-26 21:53:17

标签: xamarin.forms

我有一个InfiniteListView,可以从Xamarin Forms扩展ListView。 我知道当你在列表中的最后一项时,但我怎么能弄清楚用户是否滚动到列表的顶部?

1 个答案:

答案 0 :(得分:1)

不幸的是,Xamarin Forms ListView不会公开Scrolled事件或Position属性。因此,您唯一的选择是使用ItemAppearingItemDisappearing事件。

当您订阅这些事件时,您可以确定第一个单元格是否在首先消失之后再次出现。这实际上并没有给出100%正确的结果,因为只有第一个单元格的一部分才会显示出来。

如果你想要一个完美的检查,你是绝对的顶部,你将不得不求助于自定义渲染器:

  • 在iOS上,您可以使用UITableView上的tableView.contentOffset.y属性。

  • 在Android上它涉及的更多,因为有多种(但没有直接的)方法来实现这一点。有关一种可能性,请参阅this answer。此方法最初用于保存和恢复滚动位置,因此请根据您的需要进行调整。

  • 其他平台也有类似的想法。检查Xamarin Forms渲染器创建的本机控件,然后在Internet上搜索该特定平台的可能解决方案。