美文网首页Android所有文章都配视频讲解Android开发Android知识
Github最火开源项目-PullToRefresh下拉刷新和加

Github最火开源项目-PullToRefresh下拉刷新和加

作者: 小怪兽打葫芦娃 | 来源:发表于2017-01-19 11:16 被阅读314次

    开源地址:https://github.com/open-android/PullToRefresh

    PS:如果觉得这个系列的每篇文章太长,那就直接看视频

    运行效果

    • 爱生活,爱学习,更爱做代码的搬运工,分类查找更方便请下载黑马助手app
    黑马助手.png

    使用步骤

    1. 添加依赖

    //在项目下的build.gradle
    allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }
    
    //在app模块下的build.gradle
    dependencies {
            compile 'com.github.open-android:PullToRefresh:v1.0'
    }
    

    2. 在布局中添加PullToRefreshListView

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/activity_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <com.itheima.pulltorefreshlib.PullToRefreshListView
            android:id="@+id/pull_to_refresh_list_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    </RelativeLayout>
    

    3. 设置Adapter

    private ArrayAdapter mArrayAdapter;
    private PullToRefreshListView mPullToRefreshListView;
    
    mPullToRefreshListView = (PullToRefreshListView) findViewById(R.id.pull_to_refresh_list_view);
    mArrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, mockList(0, 30));
    mPullToRefreshListView.setAdapter(mArrayAdapter);
    

    4. 添加模拟数据

    private ArrayList<String> mItems = new ArrayList<String>();
    /**
     * 创建或动态添加测试用的数据列表
     * @param start 数据的起始位置
     * @param count 数据的个数
     * @return 当前的数据列表
     */
    private List<String> mockList(int start, int count) {
        for (int i = start; i < start + count; i++) {
            mItems.add("黑马程序员:" + i);
        }
        return mItems;
    }
    

    5. 设置模式

    //设置模式BOTH: 既能上拉也能下拉,
     mPullToRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);
    

    6. 设置监听

    //设置刷新监听
    mPullToRefreshListView.setOnRefreshListener(mListViewOnRefreshListener2);
    
    private PullToRefreshBase.OnRefreshListener2<ListView> mListViewOnRefreshListener2 = new PullToRefreshBase.OnRefreshListener2<ListView>() {
    
            /**
             * 下拉刷新回调
             * @param refreshView
             */
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                //模拟延时三秒刷新
                mPullToRefreshListView.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        mItems.clear();
                        mockList(0, 20);
                        mArrayAdapter.notifyDataSetChanged();
                        mPullToRefreshListView.onRefreshComplete();//下拉刷新结束,下拉刷新头复位
    
                    }
                }, 3000);
            }
    
            /**
             * 上拉加载更多回调
             * @param refreshView
             */
            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
                //模拟延时三秒加载更多数据
                mPullToRefreshListView.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        mockList(mItems.size(), 20);
                        mArrayAdapter.notifyDataSetChanged();
                        mPullToRefreshListView.onRefreshComplete();//上拉加载更多结束,上拉加载头复位
                    }
                }, 3000);
            }
        };
    
    • 详细的使用方法在DEMO里面都演示啦,如果你觉得这个库还不错,请赏我一颗star吧~~~

    • 欢迎关注微信公众号

    相关文章

      网友评论

        本文标题:Github最火开源项目-PullToRefresh下拉刷新和加

        本文链接:https://www.haomeiwen.com/subject/cwhibttx.html