pulltoreflesh用法
来源:互联网 发布:经典的java开源项目 编辑:程序博客网 时间:2024/06/05 18:10
做几乎每一个Android应用开发,都少不了用到一个控件,那就是ListView,用于加载多条数据,并用一定的样式展示出来。但是为了性能问题(一 次性加载太多数据,比如100000条,耗费时间长,消耗资源多等)及用户体验问题(比如用户只想看最新的10条数据,结果一下子把所有的上万条数据都加 载了,不方便用户选择)等原因,所以我们要把ListView的数据进行分页加载,常用的就是ListView的上拉加载更多及下拉刷新最新数据。
我们可以自己封装一个带上下拉功能的ListView,通常就是加上头部HeaderView和底部FooterView,然后通过显示的数据条数与总数 据条数据判断是否可以上拉,再用相应的监听来实现上下拉刷新操作,这些网上有大把资料。今天贴的代码是在工作中用到的,已经有开源库封装好的开源控件 PullToRefreshListView。其实源码下载地址是:https://github.com/chrisbanes/Android-PullToRefresh ,详细用法可以点击查看。
PullToRefreshListView的用法很简单,同ListView是一样的,要给其提供数据的适配器Adapter,然后setAdapter()以及点击事件都是一样的。我把我在工作中用到的上下拉刷新实现代码简单贴出来,做个笔记:
privatePullToRefreshListView freshListView;privateBeforeRecordAdapter adapter;@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);setContentView(R.layout.......); freshListView= (PullToRefreshListView) findViewById(R.id.period_record_lv);//所在页面布局文件中对应PullToRefreshListView freshListView.setMode(Mode.BOTH);//模式为上下拉/* * Mode.BOTH:同时支持上拉下拉 *Mode.PULL_FROM_START:只支持下拉Pulling Down *Mode.PULL_FROM_END:只支持上拉Pulling Up * 如果Mode设置成Mode.BOTH,需要设置刷新Listener为OnRefreshListener2,并实现 onPullDownToRefresh()、onPullUpToRefresh()两个方法。 * 如果Mode设置成Mode.PULL_FROM_START或Mode.PULL_FROM_END,需要设置刷新Listener为OnRefreshListener,同时实现onRefresh()方法。 * 当然也可以设置为OnRefreshListener2,但是Mode.PULL_FROM_START的时候只调用onPullDownToRefresh()方法, * Mode.PULL_FROM的时候只调用onPullUpToRefresh()方法. */freshListView.setOnRefreshListener(newOnRefreshListener2<ListView>() { @Override public voidonPullDownToRefresh(PullToRefreshBase<ListView> arg0) {//下拉刷新实现CURRENT_PAGE= 1;//分页加载,下拉刷新的都是第1页的数据 getData();//从服务器取数据 } @Override public voidonPullUpToRefresh(PullToRefreshBase<ListView> arg0) {//上拉加载更多 CURRENT_PAGE++;//分页加载,上拉加载下一页面数据 getData();//从服务器取数据 } }); adapter = new BeforeRecordAdapter(this);//适配器 freshListView.setAdapter(adapter);//设置数据 freshListView.setOnItemClickListener(beforeItemClick);//item点击事件}//加载服务器数据,或是自己构造数据privatevoid getData(){//首先是获取到请求的数据,计算出数据的数量totalSize//然后根据totalSize来判断freshListView应该处理哪种模式,比如数据加载完了就不能再上拉刷新if(totalSize == 0) { freshListView.setMode(Mode.DISABLED); } else if (adapter.getCount() >= totalSize) { freshListView.setMode(Mode.PULL_FROM_START); } else { freshListView.setMode(Mode.BOTH); } freshListView.onRefreshComplete();}
0 0
- pulltoreflesh用法
- pulltoreflesh
- android下拉刷新和上拉加载更多的框架pulltoreflesh
- 用法
- ,, 用法
- 用法
- 用法
- #用法
- ??用法
- !!用法
- CustDialog用法 SimpleAdapter 用法
- hibernate_Restrictions用法 hibernate_Restrictions用法
- extern用法+assert用法
- getParameterValues用法
- rpm用法
- Log4j用法
- NameSpace用法
- sp_executesql 用法
- Jquery动态绑定事件
- Android源码关联
- 查看文件行数
- Mysql慢日志、缓存配置
- jQuery 学习笔记(一)
- pulltoreflesh用法
- Spark内存管理
- Java嵌入式数据库H2学习总结(三)——在Web应用中嵌入H2数据库
- AS相关
- Palindrometer
- 罗马数字的再解释
- c++输出二叉树叶子结点并输出叶子结点到根结点的路径长度
- bat常用命令
- 网卡工作模式有4种