博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android PullToRefreshListView上拉刷新和下拉刷新
阅读量:5922 次
发布时间:2019-06-19

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

 PullToRefreshListView实现上拉和下拉刷新有两个步骤:

  1、设置刷新方式

pullToRefreshView.setMode(PullToRefreshBase.Mode.BOTH);//两端刷新     pullToRefreshView.setMode(PullToRefreshBase.Mode.PULL_FROM_START);//上拉刷新     pullToRefreshView.setMode(PullToRefreshBase.Mode.PULL_FROM_END);//下拉刷新

  2、如果是上拉刷新或者下拉刷新需要实现OnRefreshListener接口;如果是两端刷新,setOnRefreshListener需要实现OnRefreshListener2接口

  两端刷新实现:

pullToRefreshView = (PullToRefreshListView) view.findViewById(R.id.pull_to_refresh_listview);        pullToRefreshView.setMode(PullToRefreshBase.Mode.BOTH);//两端刷新//        pullToRefreshView.setMode(PullToRefreshBase.Mode.PULL_FROM_START);//上拉刷新//        pullToRefreshView.setMode(PullToRefreshBase.Mode.PULL_FROM_END);//下拉刷新        pullToRefreshView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2
() { @Override public void onPullDownToRefresh(PullToRefreshBase
refreshView) { refreshType = REFRESH_TYPE_DOWN; refreshView.getLoadingLayoutProxy().setRefreshingLabel("正在加载"); refreshView.getLoadingLayoutProxy().setPullLabel("下拉加载更多"); refreshView.getLoadingLayoutProxy().setReleaseLabel("释放开始加载");// refreshView.getLoadingLayoutProxy().setLastUpdatedLabel("最后加载时间:"); // Do work to refresh the list here. new GetDataTask().execute(); } @Override public void onPullUpToRefresh(PullToRefreshBase
refreshView) { refreshType = REFRESH_TYPE_UP; refreshView.getLoadingLayoutProxy().setRefreshingLabel("正在加载"); refreshView.getLoadingLayoutProxy().setPullLabel("上拉加载更多"); refreshView.getLoadingLayoutProxy().setReleaseLabel("释放开始加载");// refreshView.getLoadingLayoutProxy().setLastUpdatedLabel("最后加载时间:"); // Do work to refresh the list here. new GetDataTask().execute(); } });

  AsyncTask实现异步加载

private class GetDataTask extends AsyncTask
{ @Override protected String[] doInBackground(Void... params) { try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } return new String[0]; } @Override protected void onPostExecute(String[] result) { // Call onRefreshComplete when the list has been refreshed. pullToRefreshView.onRefreshComplete(); if(REFRESH_TYPE_DOWN == refreshType){ Article article = new Article(); article.setTitle("下拉刷新添加title"); adapter.insert(article,0);//adapter是一个LinkedList }else if(REFRESH_TYPE_UP == refreshType){ Article article = new Article(); article.setTitle("上拉刷新添加title"); adapter.add(article); } super.onPostExecute(result); } }

  如果想实现更丰富的效果可修改布局文件参数,如:

本文转自秋楓博客园博客,原文链接:http://www.cnblogs.com/rwxwsblog/p/4903946.html,如需转载请自行联系原作者
你可能感兴趣的文章
数据模型
查看>>
很有必要了解的 数据存储单位
查看>>
LaTex中beamer的一个好用的技巧
查看>>
Java Annotation
查看>>
向博客进军
查看>>
CentOS7中安装Subversion 1.9.7(续2)
查看>>
php三元运算符学习
查看>>
StaggeredGridView 实现分析--滑动处理(一)滑动位移
查看>>
php 位移运算符(<<左移和>>右移)
查看>>
android之通过phoneStateListener监听电话状态改变
查看>>
Android中Intent和Intent Filter 原理与使用详解
查看>>
Git学习笔记(基础)
查看>>
高并发高负载的大型网站系统架构
查看>>
Zeos DB 连接Mysql Utf8 字符集设置
查看>>
Hibernate 实体类注解
查看>>
vim中的杀手级插件: YouCompleteMe[转载]
查看>>
java多线程锁的学习总结
查看>>
我的友情链接
查看>>
怎么查看TXT文档乱码的真实内容和编码格式
查看>>
Vim和Sublime常用快捷键
查看>>