Android笔记

Android 利用第三方库实现下拉刷新 -android-Ul

2019-07-23  本文已影响0人  Cedric_h

原文:https://blog.csdn.net/uyy203/article/details/52622962

android-Ultra-Pull-To-Refresh库

github地址

https://github.com/Chanven/CommonPullToRefresh

有个较为详尽的例子,包含有上拉加载更多

http://blog.csdn.net/leejizhou/article/details/50823184

在module的gradle中加入

compile 'com.chanven.lib:cptr:1.1.0'

在xml布局文件中使用布局

<com.chanven.lib.cptr.PtrClassicFrameLayout>
</com.chanven.lib.cptr.PtrClassicFrameLayout>

进行包裹

在Activity.java中

        mPtrFrame=(PtrClassicFrameLayout) findViewById(R.id.chanven);

        /****下拉刷新****/
        //下拉刷新支持时间
        mPtrFrame.setLastUpdateTimeRelateObject(this);
        //下拉刷新一些设置 详情参考文档
        mPtrFrame.setResistance(1.7f);
        mPtrFrame.setRatioOfHeaderHeightToRefresh(1.2f);
        mPtrFrame.setDurationToClose(200);
        mPtrFrame.setDurationToCloseHeader(1000);
        // default is false
        mPtrFrame.setPullToRefresh(false);
        // default is true
        mPtrFrame.setKeepHeaderWhenRefresh(true);




        //进入Activity就进行自动下拉刷新
//        mPtrFrame.postDelayed(new Runnable() {
//            @Override
//            public void run() {
//                mPtrFrame.autoRefresh();//自动调用onRefreshBegin中的run内的数据处理和UI刷新操作
//            }
//        }, 100);

        
        
        
        
        //下拉刷新
        mPtrFrame.setPtrHandler(new PtrDefaultHandler() {


            @Override
            public boolean checkCanDoRefresh(PtrFrameLayout frame, View content, View header) {//检查是否能够刷新
                return super.checkCanDoRefresh(frame, content, header);
            }






            @Override
            public void onRefreshBegin(PtrFrameLayout frame) {


                mPtrFrame.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        refresh();//刷新数据并更新UI,可换成数据处理的相关操作
                        mPtrFrame.refreshComplete();//发出刷新操作完成的信号
//                        mPtrFrame.setLoadMoreEnable(true);
                    }
                },100);





                mPtrFrame.setOnLoadMoreListener(new OnLoadMoreListener() {
                    @Override
                    public void loadMore() {
                        Toast.makeText(MainActivity.this, "load more complete", Toast.LENGTH_SHORT)
                                .show();


                    }
                });
                
            }

            
        });
上一篇下一篇

猜你喜欢

热点阅读