Android PullUpToRefresh刷新框架之PullToRefreshExpandableListView

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值