Android 下拉刷新上拉加载PullToRefresh
2016-12-14 本文已影响15101人
晓峰残月
PullToRefresh
最新更新详见github,欢迎star or fork
开发者可以使用 PullToRefresh
对各种控件实现下拉刷新或者上拉加载以及可以自定义刷新和加载部分的视图。
目前支持:ScrollView
,ListView
,WebView
,RecyclerView
。
效果图
基本用法
1、添加 Gradle 依赖
目前只支持 Android Studio,最新版本可到GitHub上查看
compile 'com.jwenfeng.pulltorefresh:library:1.0.3'
2、布局文件
注意:内容控件 有且只能有一个,目前支持:ScrollView
,ListView
,WebView
,RecyclerView
。
<?xml version="1.0" encoding="utf-8"?>
<com.jwenfeng.library.pulltorefresh.PullToRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- 内容控件 有且只能有一个 -->
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
</ScrollView>
</com.jwenfeng.library.pulltorefresh.PullToRefreshLayout>
3、在Activity或者Fragment中使用
pullToRefreshLayout.setRefreshListener(new BaseRefreshListener() {
@Override
public void refresh() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// 结束刷新
pullToRefreshLayout.finishRefresh();
}
}, 2000);
}
@Override
public void loadMore() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// 结束加载更多
pullToRefreshLayout.finishLoadMore();
}
}, 2000);
}
});
4、自定义视图
自定义下拉刷新视图需要实现 HeadView
接口
public interface HeadView {
/**
* 开始下拉
*/
void begin();
/**
* 回调的精度,单位为px
*
* @param progress 当前高度
* @param all 总高度
*/
void progress(float progress, float all);
void finishing(float progress, float all);
/**
* 下拉完毕
*/
void loading();
/**
* 看不见的状态
*/
void normal();
/**
* 返回当前视图
* */
View getView();
}
具体请参考Demo中 HeadRefreshView
上拉加载更多用法和下拉刷新类似,具体参考 LoadMoreView.java
5、其他
可以设置下拉刷新和上拉加载控件的高度和拉取的最大高度,默认为60dp,最大拉取为120dp,可自行设置。
最后
github地址:https://github.com/823546371/PullToRefresh
欢迎 Star
or Fork
。欢迎交流指正。
尊重原创,转载请注明: Android 下拉刷新上拉加载PullToRefresh,侵权必究!