README.md 3.9 KB
Newer Older
门心叼龙's avatar
门心叼龙 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
# FlyRefreshLayout
FlyRefreshLayout是一个支持下拉刷新、上拉加载更多的自定义控件,支持RecyclerView,NestedScrollView,ScrollView 、ListView,GridView,能自定义HeadView和fooFooterView,基于SuperSwipeRefreshLayout开发,不但支持最基本的下拉刷新、上拉加载更多,还在其基础上扩展了是否启用下拉刷新、是否启用上拉加载更多、自动刷新,停止刷新、停止加载更多等功能,并对其下拉刷新监听器、上拉加载更多监听器进行了优化,使其调用更加的方便
### 主要功能

* 支持最基本的下拉刷新、上拉加载更多
* 支持自定义HeadView和FootView
* 支持自动刷新
* 支持启用、禁用下拉刷新
* 支持启用、进攻上拉加载更多
* 通用小菊花样式DaisyRefreshLayout
* 通用小箭头样式ArrowRefreshLayout
### 小菊花样式DaisyRefreshLayout使用步骤:
#### 1.创建布局文件
```
<?xml version="1.0" encoding="utf-8"?>
<com.fly.refresh.DaisyRefreshLayout
    android:id="@+id/refresh_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>    
</com.fly.refresh.DaisyRefreshLayout>
```
#### 2.添加下拉刷新监听器
```
 DaisyRefreshLayout mRefreshLayout = findViewById(R.id.refresh_layout);
 mRefreshLayout.setOnRefreshListener(new DaisyRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                Log.v(TAG,"refresh start");
                new Handler().postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        Log.v(TAG,"response ok");
                        mRefreshLayout.setRefreshing(false);
                    }
                },1000 * 3);
            }
        });
```
#### 3.添加上拉加载更多的监听器
```
 mRefreshLayout.setOnLoadMoreListener(new DaisyRefreshLayout.OnLoadMoreListener() {
            @Override
            public void onLoadMore() {
                Log.v(TAG,"loadMore start");
                new Handler().postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        Log.v(TAG,"response ok");
                        mRefreshLayout.setLoadMore(false);
                    }
                },1000 * 3);
            }
        });
门心叼龙's avatar
门心叼龙 已提交
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
```
#### 4.添加自动刷新监听器
```
 //自动刷新回调监听器
 mRefreshLayout.setOnAutoLoadListener(new DaisyRefreshLayout.OnAutoLoadListener() {
            @Override
            public void onAutoLoad() {
                Toast.makeText(getBaseContext(),"开始加载数据了",Toast.LENGTH_SHORT).show();
            }
        });
//自动刷新调用   
 mRefreshLayout.autoRefresh();
 ```
#### 4.停止刷新
```
mRefreshLayout.setRefreshing(false);
```
#### 5.停止加载更多
```
mRefreshLayout.setLoadMore(false);
```
门心叼龙's avatar
门心叼龙 已提交
79
#### 6.启用、禁用下拉刷新
门心叼龙's avatar
门心叼龙 已提交
80 81 82
```
mRefreshLayout.setEnableRefresh(b);
```
门心叼龙's avatar
门心叼龙 已提交
83
#### 7.启用、禁用上拉加载更多
门心叼龙's avatar
门心叼龙 已提交
84 85 86
```
mRefreshLayout.setEnableLoadMore(b)
```
门心叼龙's avatar
门心叼龙 已提交
87 88 89
### 小箭头样式ArrowRefreshLayout的使用
小箭头样式ArrowRefreshLayout的使用方法和DaisyRefreshLayout的使用类似我就不演示了
### 功能演示:
门心叼龙's avatar
门心叼龙 已提交
90
#### 小菊花样式DaisyRefreshLayout的使用
门心叼龙's avatar
门心叼龙 已提交
91 92 93 94 95
<figure class="half">
    <img src="https://github.com/geduo83/FlyRefreshLayout/blob/master/app/src/main/assets/daisy.gif">
    <img src="https://github.com/geduo83/FlyRefreshLayout/blob/master/app/src/main/assets/arrow.gif">
</figure>

门心叼龙's avatar
门心叼龙 已提交
96
![](https://github.com/geduo83/FlyRefreshLayout/blob/master/app/src/main/assets/daisy.gif)
门心叼龙's avatar
门心叼龙 已提交
97
#### 小箭头样式DaisyRefreshLayout的使用
门心叼龙's avatar
门心叼龙 已提交
98
![](https://github.com/geduo83/FlyRefreshLayout/blob/master/app/src/main/assets/arrow.gif)
门心叼龙's avatar
门心叼龙 已提交
99