温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Spark机器学习环境搭建

发布时间:2020-09-09 10:17:58 来源:网络 阅读:270 作者:xianyingyi 栏目:软件技术

最近几天在研究上拉加载啊,下拉刷新啊什么的。然而坑爹的事情总是那么多。在xamarin.forms中,list自带的,并没有上拉加载的这个属性(难道当初他们封装方法时,就不会想到数据多了会咋整吗?)抱怨归抱怨,问题总是要解决的。

既然没有,那就自己写一个喽~

思路


我的思路是这样的,

什么是上拉刷新,那是不是就是说,在当前页面,看到最后一个item的时候,我需要加载一些新的数据,那我是不是可以写一个,只要出现了最后一个item我们就去刷新最新数据呢?

Spark机器学习环境搭建

 1 public class InfiniteListView : ListView 2     { 3         public static readonly BindableProperty LoadMoreCommandProperty = BindableProperty.Create(nameof(LoadMoreCommand), typeof(ICommand), typeof(InfiniteListView)); 4         public static readonly BindableProperty CanLoadMoreProperty = BindableProperty.Create(nameof(CanLoadMore), typeof(bool), typeof(InfiniteListView), true); 5  6         public ICommand LoadMoreCommand 7         { 8             get { return (ICommand)GetValue(LoadMoreCommandProperty); } 9             set { SetValue(LoadMoreCommandProperty, value); }10         }11 12         public bool CanLoadMore13         {14             get15             {16                 return (bool)GetValue(CanLoadMoreProperty);17             }18             set19             {20                 SetValue(CanLoadMoreProperty, value);21             }22         }23 24         public InfiniteListView()25         {26             ItemAppearing += InfiniteListView_ItemAppearing;27         }28 29         private void InfiniteListView_ItemAppearing(object sender, ItemVisibilityEventArgs e)30         {31             if (!CanLoadMore)32             {33                 return;34             }35             var items = ItemsSource as IList;36 37             if (items != null && e.Item == items[items.Count - 1])38             {39                 if (LoadMoreCommand != null && LoadMoreCommand.CanExecute(null))40                     LoadMoreCommand.Execute(null);41             }42         }43     }

Spark机器学习环境搭建

我们来继承listview,来实现它的ItemAppearing方法,然后再方法里一次次的判断有没有到最后一个item(说实话我不知道这对程序好不好,现在只是想到了实现),只要出现了最后一个item,就去执行绑定方法。

在页面绑定中,需要

Spark机器学习环境搭建

<ContentPage             xmlns:common="clr-namespace:XXX.Common;assembly=XXX"
            >
  <common:InfiniteListView 
                               CanLoadMore="{Binding IsLoadMore}"
                               LoadMoreCommand="{Binding LoadMoreLogCommand}">

   </common:InfiniteListView>

Spark机器学习环境搭建

So。。其实是不是很简单?

简单测试了一下,发现了一个问题。就是我的list数据,有分组,一个list里面可能会有多个list,那最后一个item岂不是永远都是最外层的数据了?我把方法简单的改了一下


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI