README.md 4.7 KB
Newer Older
门心叼龙's avatar
门心叼龙 已提交
1
# FlyRefreshLayout
门心叼龙's avatar
门心叼龙 已提交
2
FlyRefreshLayout是一个支持下拉刷新、上拉加载更多的自定义控件,支持RecyclerView,NestedScrollView,ScrollView 、ListView,GridView,能自定义HeadView和FooterView,基于SuperSwipeRefreshLayout的二次开发,不但支持最基本的下拉刷新、上拉加载更多,还在其基础上扩展了是否启用下拉刷新、是否启用上拉加载更多、增加了自动刷新功能,优化了下拉刷新监听器、上拉加载更多监听器,增加了通用小菊花样式DaisyRefreshLayout和通用小箭头样式ArrowRefreshLayout使其调用更加的方便
门心叼龙's avatar
门心叼龙 已提交
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
### 主要功能

* 支持最基本的下拉刷新、上拉加载更多
* 支持自定义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;小箭头样式DaisyRefreshLayout
门心叼龙's avatar
门心叼龙 已提交
91
<div align="left">
门心叼龙's avatar
门心叼龙 已提交
92
<img src="https://github.com/geduo83/FlyRefreshLayout/blob/master/app/src/main/assets/daisy.gif">
门心叼龙's avatar
门心叼龙 已提交
93
<img src="https://github.com/geduo83/FlyRefreshLayout/blob/master/app/src/main/assets/arrow.gif" style="margin-left:100px">  
门心叼龙's avatar
门心叼龙 已提交
94
</div>
门心叼龙's avatar
门心叼龙 已提交
95
### 问题反馈
门心叼龙's avatar
门心叼龙 已提交
96 97 98 99
在使用中有任何问题,请在下方留言,或加入Android、Java开发技术交流群<br>
QQ群:810970432<br>
email:geduo_83@163.com<br>
![](https://img-blog.csdnimg.cn/20190126213618911.png)<br>
门心叼龙's avatar
门心叼龙 已提交
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
### 关于作者
```
var geduo_83 = {
    nickName  : "门心叼龙",
    site : "http://www.weibo.com/geduo83"
}
```
### License
```
Copyright (C)  menxindiaolong, FlyCloud Framework Open Source Project

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
```