Xamarin.Android之下拉刷新
发布日期:2021-08-29 23:31:47 浏览次数:22 分类:技术文章

本文共 2051 字,大约阅读时间需要 6 分钟。

一、前言

当今任何一个App中只要存在列表,基本上都会使用下拉刷新,而身为Xamarin一族的我们自然也不会落后,下面笔者将带领大家在Xamarin下实现Android中的下拉刷新的效果。

 

二、准备工作

我们的下拉刷新可不是全手工自己实现,而是利用了第三方的库,大家可以选择任何一种方式进行下载:

 

PS:如果读者选择从Github上下载需要修改引用的文件,将源码的v4删掉,重新引用新的v4。

 

三、正文

该下拉刷新并不同于官方的下拉刷新DEMO,官方采用的是利用ActionBar呈现刷新状态的,但是我们正常使用的App都是通过下拉呼出下拉刷新,而该第三方下拉刷新需要我们修改layout下的axml文件才能正常使用,比如我们需要ListView支持下拉刷新就需要按照如下的方式修改axml文件:

1 
2
6
9
13
14

 

其中ViewWrapper是必须的,它的子控件ListView可不是系统自带的那个控件,我们必须使用自带的,当然读者不需要担心它跟系统自带的ListView有什么区别,实质上第三方就是继承自ListView,当然第三方支持比较有限,现在只能支持ListViewGridViewExpandableListView以及ScrollView

 

接着我们回到MainActivity.cs中,写入如下的代码,监听ListView的RefreshActivated事件,并且模拟加载延迟然后调用ListView的OnRefreshCompleted方法完成加载:

1         protected override void OnCreate(Bundle bundle) 2         { 3             base.OnCreate(bundle); 4             SetContentView(Resource.Layout.Main); 5  6             lv = FindViewById
(Resource.Id.listview1); 7 lv.Adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleListItem1, ITEMS); 8 lv.RefreshActivated += (e,s) => 9 {10 Task.Factory.StartNew(() =>11 {12 Thread.Sleep(1000);13 RunOnUiThread(() =>14 {15 lv.OnRefreshCompleted();16 });17 });18 };19 }

 

 

其中ITEMS的内容如下所示:

1         private static string[] ITEMS = new string[] {
"Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam","Abondance", "Ackawi", "Acorn", "Adelost", "Affidelice au Chablis", "Afuega'l Pitu","Airag", "Airedale", "Aisy Cendre", "Allgauer Emmentaler", "Abbaye de Belloc","Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi", "Acorn", "Adelost","Affidelice au Chablis", "Afuega'l Pitu", "Airag", "Airedale", "Aisy Cendre","Allgauer Emmentaler"};

 

 

然后一个简单的下拉刷新就完成了,我们来看看我们的成果吧:

 

 

 

如果读者需要自定义这部分只需要在ViewWrapper与ListView之间添加一个LinearLayout控件,里面写上自定义的内容即可,当然这其中的各种动画效果自然也要自己实现了,笔者这里就不详细介绍了,作为福利,再给大家看看官方采用ActionBar()实现的下拉效果图:

 

 

转载地址:https://blog.csdn.net/weixin_34015336/article/details/85670282 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Oracle 创建同义词
下一篇:Ubuntu系统安装stardict(星际译王)词典

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月13日 09时08分21秒