Maui 如何检测用户何时到达 ScrollView 的末尾。 (无限滚动)

问题描述 投票:0回答:1

我有一个使用 ScrollView 的页面。 在此页面中,我显示了一个列表。 我从休息界面获得的这个列表。 该列表可能很长,所以我只从其余界面加载一定数量的项目,比如说 30 个项目。 当用户向下滚动并到达列表和 ScrollView 的末尾时,我想从其余界面加载接下来的 30 个项目并将它们添加到视图中。

我如何检测用户何时到达 Maui ScrollView 的下端?

xaml scrollview maui infinite-scroll
1个回答
1
投票

要在用户到达ScrollView列表项的下端时检测它的末尾,可以使用下面的代码来实现:

XAML:

<ScrollView  Scrolled="OnScrollViewScrolled"> 
     <StackLayout BindableLayout.ItemsSource="{x:Static local:NamedColor.All}">
           <!--Omitted for breviety-->
      </StackLayout>
</ScrollView>

代码隐藏:

private void OnScrollViewScrolled(object sender, ScrolledEventArgs e) 
{

      if (!(sender is ScrollView scrollView)) return;

      var scrollSpace =  scrollView.ContentSize.Height - scrollView.Height;

      if (scrollSpace > e.ScrollY) return;
      

      //load more items when coming to the end of the list of ScrollView 
      System.Diagnostics.Debug.WriteLine("Load more items");
}

© www.soinside.com 2019 - 2024. All rights reserved.