max的博客

max的博客

168_下拉刷新PullToRefresh

下拉刷新PullToRefresh


我们来使用一个PullToFresh开源项目

是用来实现下拉刷新功能的

 

我们就不导包了

导包容易出现好多问题

我们直接复制一下java文件

 

来个包就叫refresh

然后把文件全都复制进去

 

开始

 

我们先把布局文件中的ListView换成PullToRefreshListView

 

然后我们就用这个PullToRefreshListView

 

我们发现setAdapter方法报错了

因为他修改了这里

所以我们用他给的

mLv_content.getRefreshableView().setAdapter

 

 

 

然后设置一下

 

//下拉刷新true

        mLv_content.setPullRefreshEnabled(true);

 

//上拉加载true

        mLv_content.setPullLoadEnabled(true);

 

//滚动自动加载false关闭

        mLv_content.setScrollLoadEnabled(false);

 

//刷新监听

        mLv_content.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {

 

//下拉刷新的回调方法

            @Override

            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {

                

            }

 

//上拉加载的回调方法

            @Override

            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {

 

            }

        });

 

 

 

所以我们肯定要在两个回调方法里面调用加载数据的方法

 

比如getNetworkData()

 

@Override

            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {

                getNetworkData();

            }

            @Override

            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {

getNetworkData();

            }

 

 

 

注意了,下拉刷新和上拉刷新是有很大区别的

 

下拉刷新的时候,我们是刷新了所有的数据,请求了所有的数据

上拉刷新的时候,我们已经请求到的数据是不会变的,就是在下面显示新的数据

 

但是他们同样都是请求数据,那么我们就给getNetworkData方法加个判断

 

@Override

            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {

                getNetworkData(true);

            }

            @Override

            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {

getNetworkData(false);

            }

 

当是true的时候,那么就是下拉刷新

当是false的时候,那么就是上拉刷新

 

所以我们的请求数据的方法也要加上参数

 

//是否是下拉刷新

public void getNetworkData(boolean isPullDownToRefresh){

 

}

 

 

 

然后我们要修改请求数据的方法

 

public void getNetworkData(boolean isPullDownToRefresh){

if(isPullDownToRefresh){

//当是下拉刷新的时候,我们是刷新所有数据

//所以我们把之前的List全都clear

}else{

//而上拉刷新的时候,我们不能把数据清除掉

//而是把数据添加到List后面

}

}

 

 

然后我们把头布局收回去

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33781658/article/details/51549691
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

168_下拉刷新PullToRefresh

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭