PullToRefresh下拉刷新

 

  HeaderView  , FooterView   顶部底部的布局另做了解;

上拉刷新视频地址:http://www.tmooc.cn/player/index.shtml?courseId=ECA203008A814025AB881D0A236E16F6

                                 http://www.tmooc.cn/player/index.shtml?courseId=ECA203008A814025AB881D0A236E16F6

1、将ListView数据源的加载修改成每次加载多少条消息的方法,将ListView内存处理细节文章中第二步中加载数据的方法改成此方法(方法中每次加载的下标是随机的,应写成第二步提到的方法的参数);

/**

*  contacts[ ] 数组中存放着ListView的所有数据

* @param  startIndex 起始下标/起始索引

*@param count  加载的数据的数量

*/

public static List<String>getContactsData(int startIndex,int coun){

List<String> data =new ArrayList<String>();

//从开始下标开始加载数据,当下标小于(起始下标+数量=结束下标)并且小于数据源总数量(不会出现下标越界),将

//数据元素添加到List集合

for(int i= starIndex;i < starIndex +cunt && i< contacts.length;i++){

data.add(i+" -"+contacts[ i ]);

}

return data;

}

2、利用ListView的滚动监听事件处理滑动事件(OnScrollListener)

//onCreate中调用ListView的滑动监听器类的实现
listView.setOnScrollListener(new InnerOnScrollListener());

//全局变量用来判断ListView是否处于加载状态
private  boolean isLoading;

//OnScrollListener 方法类的实现 
private class InnerOnScrollListener implements AbsListView.OnScrollListener {

    @Override
    public void onScrollStateChanged(AbsListView absListView, int i) {

    }

    @Override
    public void onScroll(AbsListView absListView, int i, int i1, int i2) {
        //加载数据的条件
        //1、已显示到最后一条数据
        //2、仍有数据可以被加载
        //3、未处于加载状态
        //4、ListView已经显示数据
        if(listView.getLastVisiblePosition() >= i2-1
                && i2< contacts.length
                && !isLoading
                && i2>0){
             isLoading=true;
            //在ListView内存处理细节文章中第三步中数据处理完后再将他设为false

            //将写好的FooterView 加载出来;另外同上在数据处理完后删除FooterView
            /*
            调用ListView内存处理细节文章中第二步中写的加载数据的方法。此前该方法以改成
            需要传入加载下标的参数在此处传入的参数 i2
             */
        }
    }
}

ListView内存处理细节 https://blog.csdn.net/hadkfhkdh/article/details/82145044

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋风落叶黄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值