PullToRefresh------ListView的使用
2015-01-20 17:02
405 查看
第一步 :写出布局文件的设置
第二步 使用 ,先得到mPullRefreshListView 初始化的设置
加载数据的类
附录: 方法
adapter 里面的两个方法
http://www.cnblogs.com/java-g/p/4147658.html
<com.handmark.pulltorefresh.library.PullToRefreshListView android:id="@+id/pull_refresh_list" android:layout_width="match_parent" android:layout_height="match_parent" android:cacheColorHint="#00000000" //设置背景透明 android:divider="#19000000" //分割线颜色 android:dividerHeight="4dp" //分割线高度 android:fadingEdge="none" // 设置上边和下边没有黑色的阴影 android:fastScrollEnabled="false" //是不是允许快速滑动 android:footerDividersEnabled="false" //底部没分割线 android:headerDividersEnabled="false" //头部没分割线 android:smoothScrollbar="true" //显示变化滚动条高度 /* ptr:ptrDrawable="@drawable/default_ptr_flip" //上拉下拉图标 ptr:ptrAnimationStyle="rotate" //动画效果 提供了两个值 flip和rotate 默认为rotate ptr:ptrRefreshableViewBackground //设置整个mPullRefreshListView的背景色 ptr:ptrHeaderBackground="#383838" //上拉下拉时头部的背景色 ptr:ptrHeaderTextColor="#FFFFFF" //上拉下拉时 文字颜色 ptr:ptrHeaderSubTextColor //设置头部view副标题文字的颜色 ptr:ptrMode //模式pullFromStart(上拉刷新):pullFromEnd(下拉刷新):both; ptrScrollingWhileRefreshingEnabled //刷新的时候,是否允许ListView或GridView滚动。觉得为true比较好 // 决定了Header,Footer以何种方式加入mPullRefreshListView, // true为headView方式加入,就是滚动时刷新头部会一起滚动。 ptrListViewExtrasEnabled */ />
第二步 使用 ,先得到mPullRefreshListView 初始化的设置
private int currentPage =1; 第一次进来的时候加载第一页的数据 initData(1); //mPullRefreshListView.setMode(Mode.PULL_FROM_END);//只支持上拉 //mPullRefreshListView.setMode(Mode.PULL_FROM_START);//只支持下拉 mPullRefreshListView.setMode(Mode.BOTH);//两端刷新 mPullRefreshListView.getLoadingLayoutProxy(false, true).setPullLabel("上拉加载"); mPullRefreshListView.getLoadingLayoutProxy(false, true).setRefreshingLabel("加载中"); mPullRefreshListView.getLoadingLayoutProxy(false, true).setReleaseLabel("松开加载更多数据"); 这里是监听的配置 mPullRefreshListView.setOnRefreshListener(new OnRefreshListener2<ListView>() { //注意这里用的2 @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) { Toast.makeText(getApplicationContext(), "下拉刷新", Toast.LENGTH_LONG).show(); //时间 String label = DateUtils.formatDateTime(getApplicationContext(), System.currentTimeMillis(), DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_ALL); refreshView.getLoadingLayoutProxy().setLastUpdatedLabel(label);//加上时间 initData(currentPage) //加载数据 } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { Toast.makeText(getApplicationContext(), "上拉获取更多", Toast.LENGTH_LONG).show(); currentPage = 1; initData(currentPage); // 下拉刷新 } });
加载数据的类
private void initData(int page) { MessageListModel.get(toId + "", page).done(new ICallback() { @Override public void success(String response) { Gson gson = new Gson(); //解析json SearchResultBean searchResultBean = gson.fromJson(response, SearchResultBean.class); if (null != searchResultBean) { if (null == adapter) { // 第一次 adapter = new AddProductAdapter(instance); //当前的实例instance //adapter.setHandler(handler); mPullRefreshListView.getAdapterView().setAdapter(adapter); } ArrayList<ProductBean> list = searchResultBean.getProducts(); // 得到集合数据 //page为1 的时候 清理集合 ,否则不清理集合 调用下面的方法 adapter.addData(list, page == 1 ? true : false); adapter.notifyDataSetChanged(); if (searchResultBean.isHasNext()) { //判断有没个一下 currentPage = currentPage + 1; } else { listview.setPullToRefreshEnabled(false); // 没了禁用 //ToastUtil.toast(self, "没有更多数据"); } } listview.onRefreshComplete(); //完成 setSearchCount(); //设置页面的数量 } }); }
附录: 方法
adapter 里面的两个方法
private ArrayList<ProgramBean> data; public void addData(List<ProgramBean> list, boolean clear) { //传true清理集合 if (clear) { clear(); } if (null == data) { data = new ArrayList<ProgramBean>(); } if (null != list && list.size() > 0) { this.data.addAll(list); } } /** * 清理集合 */ private void clear() { if (null != data) { data.clear(); } }
http://www.cnblogs.com/java-g/p/4147658.html
相关文章推荐
- Android项目:使用pulltorefresh开源项目扩展为下拉刷新上拉加载更多的处理方法,监听listview滚动方向
- Android PullToRefresh (ListView GridView 下拉刷新) 使用详解
- Android PullToRefresh (ListView GridView 下拉刷新) 使用详解
- (4.2.7)【android开源组件】Android PullToRefresh (ListView GridView 下拉刷新) 使用详解
- Pull To Refresh (ListView GridView 下拉刷新) 使用详解
- Android PullToRefresh (ListView GridView 下拉刷新) 使用详解
- PullToRefresh------ListView的使用
- PullToRefresh使用详解(一)--构建下拉刷新的listView
- Android PullToRefresh (ListView GridView 下拉刷新) 使用详解
- 使用pulltorefreshscrollview 嵌套 listview viewpager的配置方式
- Android研究之手PullToRefresh(ListView GridView 下拉刷新)使用详解
- Android PullToRefresh (ListView GridView 下拉刷新) 使用详解
- 开源项目PullToRefresh详解(四)——PullToRefreshListView和ViewPager的结合使用
- Android PullToRefresh (ListView GridView 下拉刷新) 使用详解
- Android PullToRefresh (ListView GridView 下拉刷新) 使用详解
- 使用MultiColumnPullToRefreshListView实现瀑布流加载网络图片
- 关于PullToRefreshListView的使用
- Android PullToRefresh (ListView GridView 下拉刷新) 使用详解
- 使用pulltorefreshlistview,添加上拉加载更多效果。不同于设置both属性的效果
- Android项目:使用pulltorefresh开源项目扩展为下拉刷新上拉加载更多的处理方法,监听listview滚动方向