SwipeRefreshLayout加listview下拉加载,上拉刷新

安卓开发一年了, 还是个小白,哈哈,各位借用哈就行了,仅供参考哦

这本人第一次尝试自定义View    ,通过组合SwipeRefreshLayout和listview,实现了下拉刷新和上拉加载!

//组合方法   继承SwipeRefreshLayout哈

listview = new ListView(context);
LayoutParams parm = new LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, AbsListView.LayoutParams.MATCH_PARENT);
listview.setLayoutParams(parm);
this.addView(listview, 1);

     1.SwipeRefreshLayout

      谷歌最近退出的 ,功能很好用,下拉效果很绚丽,豌豆荚等很多大boss都在用,主要是为了复制它的这个功能,猜谋生了自定义一下,组合SwipeRefreshLayout和listview,实现listview的列表功能

    2.看图 , 下拉 看代码:

       下拉刷新     具体SwipeRefreshLayout的可以百度    可以改变圈圈的颜色哈

       具体使用方法  参考   http://www.open-open.com/lib/view/open1430797271054.html


    


监听SwipeRefreshLayout的下拉刷新

this.setOnRefreshListener(new OnRefreshListener() {
    @Override
    public void onRefresh() {
        refreshlistener.onPullDownToRefresh();
    }
});


    3 上拉,listview起作用了,没有做footview 加载更多 ,看后续更新,就一个小时,没有做太多繁琐的功能哈!谅解


监听listview滑动到底部

listview.setOnScrollListener(new AbsListView.OnScrollListener() {
            public int lastItemIndex;

            @Override
            public void onScrollStateChanged(AbsListView view, int scrollState) {
                if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE
                        && lastItemIndex == adapter.getCount() - 1) {
                    Log.i(TAG, "onScrollStateChanged");
                    //加载数据代码,此处省略了
                    refreshlistener.onPullUpToRefresh(lastItemIndex + 1);

                }
            }

            @Override
            public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
//ListView 的FooterView也会算到visibleItemCount中去,所以要再减去一
                lastItemIndex = firstVisibleItem + visibleItemCount - 1;
            }
        });

简单的一个回调借口
interface RefreshListener {
    //下拉
    void onPullDownToRefresh();

    //上拉
    void onPullUpToRefresh(int position);
}

//使用方法

listview.setOnRefreshListener(new MyListView.RefreshListener() {
    @Override
    public void onPullDownToRefresh() {
        Toast.makeText(MainActivity.this, "下拉加载", Toast.LENGTH_SHORT).show();
//获取数据
        getData();
        //nowpos = 0;
//结束刷新
       listview.completeRefresh();

    }

    @Override
    public void onPullUpToRefresh(int position) {
//通过回调位置信息  也可以定位adapter到最新的位置   
//listview.setSelection(position);

        nowpos = position;
        Toast.makeText(MainActivity.this, "上拉加载", Toast.LENGTH_SHORT).show();
        getData();

    }
});


      //代码不多  仅供参考哈 

    有时间后续更新 加上各种功能哈 
    demo下载链接:http://download.csdn.net/detail/wap159/9611592




    


1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 、 1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READmE.文件(md如有),本项目仅用作交流学习参考,请切勿用于商业用途。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值