# RefreshLayout
**Repository Path**: gaojianming1081/RefreshLayout
## Basic Information
- **Project Name**: RefreshLayout
- **Description**: 鸿蒙下拉刷新组件,适用于HarmonyOS系统
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-07-28
- **Last Updated**: 2022-06-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: HarmonyOS, HarmonyOS组件, 下拉刷新
## README
## RefreshLayout
一款高效、简洁、好用的下拉刷新以及上拉加载更多的组件,可随意自定义自己想要的刷新和上拉加载更多的效果
### 如何集成
1.在项目根目录下的build.gradle文件中,
```
allprojects {
repositories {
maven {
url 'https://s01.oss.sonatype.org/content/repositories/snapshots/'
}
}
}
```
2.在entry模块的build.gradle文件中,
```
dependencies {
implementation('com.gitee.chinasoft_ohos:RefreshLayout:1.0.0')
......
}
```
### 如何使用
1. 在xml布局文件中的使用方法
```xml
```
2. 在java代码中的用法
```java
RefreshLayout refreshLayout = (RefreshLayout) findComponentById(ResourceTable.Id_refreshLayout);
refreshLayout.setLoadMoreEnable(true);
refreshLayout.setRefreshListener(new RefreshLayout.IRefreshListener() {
@Override
public void onRefresh() {
refreshLayout.stopRefresh(3000);
}
@Override
public void onLoadMore() {
refreshLayout.stopLoadMore(3000);
}
});
// ClassicHeader和ClassicFooter为库自带的一个经典的刷新和上拉加载样式
refreshLayout.addHeaderComponent(new ClassicHeader(this));
refreshLayout.addFooterComponent(new ClassicFooter(this));
```
3. 开发者如何自定义自己的刷新和上拉样式
```java
public class MyRefreshHeader extends AbstractRefreshHeader {
public MyRefreshHeader(Context context) {
super(context);
}
@Override
public void onPullRefreshRate(int progress) {
// 此处是下拉的进度 0-100,该方法主要用于下拉时候的动效监听,
// 开发者可根据progress的值来不断刷新样式,从而达到一个下拉的酷炫效果
}
@Override
public int getHeaderLayoutId() {
// 此处直接返回开发自己编写的刷新头布局文件id即可
return 0;
}
@Override
public void onPullRefreshStateChange(RefreshState refreshState) {
// 此处是下拉刷新的状态变化,总共有三种状态
// STATE_NORMAL 正常状态
// STATE_READY_REFRESH 准备刷新状态,即表示用户已经下拉达到了头布局的最大刷新高度,释放就可以刷新的一种状态
// STATE_REFRESHING 正在刷新状态
}
}
```
```java
public class MyRefreshFooter extends AbstractRefreshFooter {
public MyRefreshFooter(Context context) {
super(context);
}
@Override
public void onPullLoadMoreRate(int progress) {
// 此处是上拉的进度 0-100,该方法主要用于上拉时候的动效监听,
// 开发者可根据progress的值来不断底部样式,从而达到一个上拉的酷炫效果
}
@Override
public int getFooterLayoutId() {
// 此处直接返回开发自己编写的上拉底部布局文件id即可
return 0;
}
@Override
public void onPullLoadMoreStateChange(LoadMoreState loadMoreState) {
// 此处是上拉加载更多的状态变化,总共有三种状态
// STATE_NORMAL 正常状态
// STATE_READY_LOADMORE 准备加载更多状态,即表示用户已经上拉达到了底部布局的最大高度,释放就可以加载更多的一种状态
// STATE_LOADING 正在加载状态
}
}
```
4. 特性介绍
* 下拉刷新是默认开启的,上拉加载更多是默认关闭的
* 支持自动刷新,延迟停止刷新和延迟停止加载更多
* 支持自定义的头部和底部样式
* 支持对任何组件进行下拉刷新和上拉加载
* 该组件耦合性低
5. 如有更好建议或需求,请直接提issue或发送邮件(gaojianming108@126.com)
### 版权和许可信息
```
Apache License 2.0
```