Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

open-android/PullToRefresh

Open more actions menu

Repository files navigation

PullToRefresh

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

PS:如果觉得文章太长,你也可观看该课程的视频,亲,里面还有高清,无码的福利喔

运行效果

pulltorefresh.gif

  • 爱生活,爱学习,更爱做代码的搬运工,分类查找更方便请下载黑马助手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吧~~~

  • 欢迎关注微信公众号

About

下拉刷新和加载更多

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.