标签:
导入图中的me.maxwin.view包
提供了两个接口:
IXListViewListener:触发下拉刷新,上拉加载更多。实现此接口时,onLoadMore()用来上拉加载更多,onRefresh()用来下拉刷新。
OnXScrollListener:和原生的OnScrollListener一样,但是在header/footer回滚时也会触发。
几个常用方法:
setPullRefreshEnable(boolean enable):是否允许下拉刷新
setPullLoadEnable(boolean enable):是否允许上拉加载更多
stopRefresh():停止刷新,重置header view
stopLoadMore():停止加载更多,重置footer view
请求到数据后停止刷新停止加载更多。
setRefreshTime(String time):设置上次刷新的时间
onLoadMore():加载更多时调用的方法。注意第一次进入时不会调用此方法。
onRefresh():下拉刷新时调用的方法。
1)实现IXListViewListener接口->2)实现上拉刷新和下拉加载更多的数据变更->3)更新header view和footer view,并设置更新时间。
//更新界面显示
}//2.2 onLoadMore中实现上拉加载更多的数据加载
//更新界面显示
}//3、加载完数据后,复位header view和footer view,并设置更新的时间。
当将XListView嵌入到LinearLayout中时,XListView占满全屏时不能再加载更多。上错误代码:
这种情况,重写XListView会导致上拉加载时频繁的报错:适配器未更新,不知道咋解决。
大部分内容转自鸿洋的博客:http://blog.csdn.net/lmj623565791/article/details/38238749
首先,github上的这个控件:pull-to-refresh,例子中的功能非常强大,可不止支持ListView和GridView。在下载前,先说下项目结构。github上下载的例子,是依赖于三个项目的,一个基本的library_pullToRefresh(自己要引用到的项目。怎么引用?自己的项目右键->Properties->Android,在Is Library中选择路径),一个基本的PullToRefreshViewPager,一个PullToRefreshListFragment。
1)设置PullToRefreshListView支持上拉加载和下拉刷新->2)初始化控件,设置适配器->3)设置监听事件。在监听事件中处理上拉加载更多和下拉刷新,设置最后更新的时间。
mPullRefreshListView.setMode(Mode.BOTH);
//2、设置适配器 mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mListItems); mPullRefreshListView.setAdapter(mAdapter); //3、设置监听器mPullRefreshListView.setOnRefreshListener(new OnRefreshListener2<ListView>(){ @Override public void onPullDownToRefresh( PullToRefreshBase<ListView> refreshView){ // 显示最后更新的时间 refreshView.getLoadingLayoutProxy().setLastUpdatedLabel(label); //这里写下拉刷新的任务 new GetDataTask().execute(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView){ // 显示最后更新的时间 refreshView.getLoadingLayoutProxy().setLastUpdatedLabel(label);
new GetDataTask().execute(); } });
1)ptr:ptrMode="both"支持上拉加载和下拉刷新。disabled禁用下拉刷新和上拉加载。pullFromEnd仅支持上拉加载。manualOnly只允许手动触发。当然通过代码也可设置:lv.setMode(Mode.BOTH);
2)ptr:trAnimationStyle="flip" flip:翻转动画;rotate:旋转动画。
3)ptr:ptrDrawable="@drawable/ic_launcher"设置图标
4)ptrScrollingWhileRefreshingEnabled刷新的时候,是否允许ListView或GridView滚动。觉得为true比较好。5)ptrListViewExtrasEnabled 决定了Header,Footer以何种方式加入mPullRefreshListView,true为headView方式加入,就是滚动时刷新头部会一起滚动。
在初始化完成PullToRefreshListView后,通过lv.getLoadingLayoutProxy()可得到一个ILoadingLayout对象,这个对象可设置各种指示器中的样式、文本等。
默认是上拉和下拉的字同时改变的,如果希望单独改变呢:
版权声明:
标签:
原文地址:http://www.cnblogs.com/denghaicheng/p/4831231.html