如何解决列表末尾的CollectionView KeepScrollOffset行为
我正在使用Xamarin.Forms v4.8.0.1534,我有CollectionView
显示的项目列表。我有新物品随机出现,用户可能已经滚动列表以查看任何历史物品。该列表需要以两种模式操作:
- 监视:添加新项目时需要立即显示。
- 正在检查:用户将在哪里查看列表中的历史项目。
如果在添加新项目时(监视模式)列表显示的是最后添加的项目,则列表应滚动以完整显示新项目。如果用户已滚动列表以查看历史项目,则添加新项目时该列表不应移动。
这是将新项目添加到列表顶部或底部的选项。
如果该选项设置为将项目添加到列表和ItemsUpdatingScrollMode = KeepScrollOffset
的顶部,则一切都会按要求进行。
但是,似乎没有等效的设置可以在列表底部添加项目。
我为ItemsUpdatingScrollMode
尝试了不同的设置,但是没有按要求工作,并且我还寻找了在添加新项目之前检查在CollectionView
中是否可以看到最后添加的项目的方法。这样的想法将是使用ScrollTo
(如果相关),但是我找不到任何方法来检查CollectionView
项目的可见性。
我不确定是否遗漏了一些明显的东西,但是特别是在检查CollectionView
项目可见性的方法方面,我们会提供帮助。
解决方法
我找不到任何方法来检查CollectionView项目的可见性。
有一个LastVisibleItemIndex可以检查项目是否可见,您可以参考 this document :
void OnCollectionViewScrolled(object sender,ItemsViewScrolledEventArgs e)
{
Debug.WriteLine("LastVisibleItemIndex: " + e.LastVisibleItemIndex);
}
Xaml代码:
<CollectionView Scrolled="OnCollectionViewScrolled">
...
</CollectionView>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。