您的位置:首页 > 移动开发 > Android开发

Android PullUpToRefresh刷新框架之PullToRefreshExpandableListView

2017-05-18 15:25 537 查看
Android 上拉下拉刷新框架 PullUpToRefresh的使用

(下载地址:https://github.com/chrisbanes/Android-PullToRefresh)也可以去GitHub官网自己搜索

下载完成之后只解压文件,只需要当前文件夹下的library文件,如图 :



Android studio library导入流程如下图:



弹出对话框,如图:



选择完成之后点击next,finish接着如图:



点击Project Structure 弹出对话框如图:



点击Module dependency 弹出对话框如图:



点击OK等待完成,PullToRefresh刷新框架导入成功

PullToRefreshExpandableListView 控件的使用说明和流程:

PullToRefreshListView 的使用方法和ExpandableListView 一样,ExpandableListView 能用的属性方法,PullToRefreshExpandableListView   也能使用

第一步、和
ExpandableListView 一样,在Xml中添加:

<com.handmark.pulltorefresh.library.PullToRefreshExpandableListView
android:id="@+id/exlistview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@null"
android:scrollbars="none"/>


去掉右侧滑动的滚动条

android:scrollbars="none"


去掉每一条item之间的间隔线

android:divider="@null"


第二步、在Activity中添加:

//初始化PullToRefreshExpandableListView

PullToRefreshExpandableListView exlistview=
(PullToRefreshExpandableListView) findViewById(R.id.exlistview);


为 exlistview 的父布局和子布局准备2个放数据的实体类(OrderListGroup 和 OrderListChild)和放实体类的集合(ArrayList<OrderListGroup> 和ArrayList<OrderListChild>),方便展示

private ArrayList<OrderListGroup> orderListGroups;
private ArrayList<OrderListChild> orderListChilds;
private OrderListGroup orderListGroup;
private OrderListChild orderListChild;


现在开始添加数据

//初始化父布局实体类的集合
orderListGroups = new ArrayList<>();for (int i = 0; i < 4; i++) { //初始化父布局放数据的实体类 orderListGroup = new OrderListGroup(); orderListGroup.setM_TMS_ORDER_ID("s20170407_" + i); orderListGroup.setCREAT_TIME("2017-02-12 21:15:56");
//初始化子布局实体类的集合
orderListChilds = new ArrayList<>();
//初始化子布局放数据的实体类
  orderListChild = new OrderListChild();
//添加子布局数据
  orderListChild.setM_TMS_ORDER_QTY("125"); orderListChild.setWEIGHT("300"); orderListChild.setVOLUME("25"); orderListChild.setARRIVAL_TIME("2017-10-25 15:26:18");
//把子布局数据放入子布局集合
orderListChilds.add(orderListChild); //把子布局集合当数据添加到父布局当中 orderListGroup.setOrderListChilds(orderListChilds);
//把父布局数据放入父布局集合
  orderListGroups.add(orderListGroup);}
添加完成之后父布局集合里面有一个子布局集合和2条属性

现在用Adapter适配器展示父布局里面的内容:

exlistview.getRefreshableView().setAdapter(new OrderAdapter(orderListGroups));

展示效果:



效果展示出来,发现每个父布局上有个小箭头,看着不美观,怎么去掉呢?

//去掉左边默认的箭头
exlistview.getRefreshableView().setGroupIndicator(null);


内容已经展示出来了,怎么实现上拉下拉刷新呢?

首先设置 PullToRefreshListView 的刷新方式和刷新文字

1、刷新方式

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

2、刷新文字

//上拉文字设置
ILoadingLayout upText = listview.getLoadingLayoutProxy(false, true);
upText.setPullLabel("上拉加载");
upText.setRefreshingLabel("加载中");
upText.setReleaseLabel("释放加载");
//下拉文字设置
ILoadingLayout downText= listview.getLoadingLayoutProxy(true, false);
downText.setPullLabel("下拉刷新");
downText.setRefreshingLabel("正在刷新...");
downText.setReleaseLabel("松开刷新");


其次设置刷新监听方式(1、OnRefreshListener1 ;2、OnRefreshListener2)

              第一种监听只有下拉刷新监听

              第二种监听实现上拉下拉监听

现在只说第二种监听上拉下拉监听

exlistview.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
//处理刷新操作
  Toast.makeText(MainActivity.this, "下拉刷新", Toast.LENGTH_SHORT).show();
 }
  @Override
  public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
//处理加载操作
  Toast.makeText(MainActivity.this, "上拉加载", Toast.LENGTH_SHORT).show();
 }});

刷新操作之后记得关闭刷新动画

exlistview.onRefreshComplete();


PullToRefreshExpandableListView 刷新控件使用就这么多,另外补充两个展开和合拢父布局的监听方式:

/**
* ExpandableListView的组展开监听
*/
exlistview.getRefreshableView().setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
@Override
public void onGroupExpand(int groupPosition) {
Toast.makeText(MainActivity.this, "第" + groupPosition + "组展开", Toast.LENGTH_SHORT).show();
}
});
/**
* ExpandableListView的组合拢监听
*/
exlistview.getRefreshableView().setOnGroupCollapseListener(new ExpandableListView.OnGroupCollapseListener() {

@Override
public void onGroupCollapse(int groupPosition) {
Toast.makeText(MainActivity.this, "第" + groupPosition + "组合拢", Toast.LENGTH_SHORT).show();
}
});


最后PullToRefreshExpandableListView 控件的Adapter适配器构建请看:http://blog.csdn.net/shiyangkai/article/details/72516690
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: