怎么在Android中利用ExpandableListView实现下拉刷新功能

  介绍

这篇文章将为大家详细讲解有关怎么在Android中利用ExpandableListView实现下拉刷新功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

XML中声明

& lt; com.xingyi.elonggradletaskdemo.widget.SExpandableListView   ,,,android: listSelector=癅android:颜色/transparent"   ,,,android: id=癅 + id/elv_coupon"   ,,,android: layout_width=癿atch_parent"   ,,,android: layout_height=癿atch_parent"   ,,,android: dividerHeight=? dp"比;      & lt;才能/com.xingyi.elonggradletaskdemo.widget.SExpandableListView>

UI中配置下拉刷新的回调以及是否支持下拉和加载更多

expandableListView =, (SExpandableListView),,,,,   ,,,findViewById (R.id.elv_coupon);   ,,,//,在设置适配器之前设置是否支持下拉刷新   ,,,expandableListView.setLoadingMoreEnabled(真正的);   ,,,expandableListView.setPullRefreshEnabled(真正的);   ,,,expandableListView.setAdapter (couponAdapter);

设置下拉刷新和加载跟多的回调接口

expandableListView.setmLoadingListener (new  SExpandableListView.LoadingListener (), {   ,,,,@Override   ,,,,,public  void  onLoadMore (), {   ,,,,,,,//,模拟加载更多   ,,,,,,,isPull =,假;   ,,,,,,,//,这里应该在项目中请求,这里用延时模拟接口请求   ,,,,,,,loadCount + +;   ,,,,,,,Message  msg =, handler.obtainMessage ();   ,,,,,,,msg.arg1 =, loadCount;   ,,,,,,,handler.sendMessageDelayed(味精,2000);   ,,,,,,,Log.e(“标记处理程序:“,,loadCount  +,“——在“);   ,,,,,}      ,,,,@Override   ,,,,,public  void  onRefresh (), {   ,,,,,,,isPull =,真的;   ,,,,,,,loadCount + +;   ,,,,,,,//,模拟接口请求下拉刷新   ,,,,,,,Message  msg =, handler.obtainMessage ();   ,,,,,,,msg.arg1 =, loadCount;   ,,,,,,,handler.sendMessageDelayed(味精,2000);   ,,,,,,,Log.e(“标记处理程序:“,,loadCount  +,“——在“);   ,,,,,}   ,,,});            ,,private  Handler  Handler =, new 处理程序(),{   ,,@Override   ,,,public  void  handleMessage (Message 味精),{   ,,,,,super.handleMessage(味精);   ,,,,,//,模拟接口回复数据,加入下拉刷新次数为6次的话我们就认为没有更多了   ,,,,,if (祝辞loadCount  6), {   ,,,,,,,expandableListView.refreshComplete ();   ,,,,,,,expandableListView.setNoMore(真正的);   ,,,,,},{else    ,,,,,,,addLoadMoreData ();   ,,,,,,,if  (isPull), {   ,,,,,,,,,expandableListView.refreshComplete ();   ,,,,,,,}   ,,,,,,,couponAdapter.notifyDataSetChanged ();   ,,,,,,,//,是不是全部展开,根据需求设置//,,,,,,,,expanedAll ();   ,,,,,}   ,,,,,Log.e(“标记- - -收到消息:“,,loadCount  +,“——在“);      ,,,}   };才能

<强>简单看下实现过程

<李>

自定义ExpandableListview

<李>

重写ondraw事件

<李>

给自定义的观点添加滑动监听事件

<李>

初始化的时候给视图添加页眉和页脚用来下拉刷新

//,这里在自定视图构造函数中调用的增加页眉和页脚的代码,注意下两种添加方式的区别,详情见注释和源代码   ,private  void  initSE (Context 上下文),{   ,,,/* *   ,,,,*,这里是页脚的填充,注意指定他的父亲为当前的列表视图,   ,,,,*,这里页脚不用指定layoutparem是因为footer 在填充的时候已经指定了他的父视图   ,,,*/,,,loadMoreView =, LayoutInflater.from(上下文).inflate (R.layout.item_footer_view,,这个,,假);   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么在Android中利用ExpandableListView实现下拉刷新功能