sasuke-Recyclerview
輕量級辙诞、可擴展 下拉刷新-上拉加載 RecyclerView
· 總覽
· 特性
· 基礎
· 簡單使用
· 一些配置
· 高級用法
· 自定義刷新頭部樣式
· 配合MultiType-Adapter
· Thrank
· 一些說明
特性
- 輕盈飒箭、整個類庫只有6個文件
- 擴展洋措、支持自定義下拉刷新樣式剑按、京東、淘寶樣式任你玩
- 還可配合MultiType-Adapter使用
- 周到澜驮、支持網(wǎng)格布局陷揪、瀑布流布局。
總覽
基礎
當然是引用啦
repositories {
jcenter()
maven { url "https://www.jitpack.io" }
}
// yout project build.gradle
dependencies {
compile 'com.github.LidongWen:SasukeRecyclerView:0.0.1'
}
簡單使用
1杂穷、xml內(nèi)使用 RefreshLoadRecyclerView
2悍缠、java內(nèi) 初始化 RefreshLoadRecyclerView
3、設置各種
recyclerView.setAdapter(adapter);
//注意 這邊一定要先設置 適配器;
recyclerView.setRefreshCreator(new DefaultRefreshCreator()); //設置刷新頭部信息
recyclerView.setOnRefreshListener(new RefreshLoadRecyclerView.OnRefreshListener()...); //設置監(jiān)聽
recyclerView.setLoadMoreLayoutId(R.layout.default_loading); //設置上拉加載 view
recyclerView.setOnLoadMoreListener(new LoadMoreWrapper2.OnLoadMoreListener); //設置加載監(jiān)聽
配置
// 一些方法
void setLoadMoreEnble(boolean b);
boolean isLoading();
void stopLoad();
void setLoadMoreLayoutId(@LayoutRes int layoutId);
void setLoadMoreView(View view);
void setOnLoadMoreListener(LoadMoreWrapper2.OnLoadMoreListener loadMoreListener);
void setRefreshEnble(boolean b);
boolean isRefreshing();
void stopRefresh();
void setRefreshCreator(RefreshViewCreator view);
高級用法
自定義刷新頭部樣式
一般公司都會要求我們根據(jù)UI做的設計圖來實現(xiàn)功能耐量,這一點 wenld 早就幫你想到了飞蚓,我們可以自定義下拉刷新的樣式,以及上拉加載的樣式廊蜒;
// 下拉刷新 只要繼承我們的 RefreshViewCreator 就好了 趴拧,這是默認樣式
public class DefaultRefreshCreator extends RefreshViewCreator {
// 加載數(shù)據(jù)的ImageView
private View mRefreshIv;
private TextView tv;
@Override
public View getRefreshView(Context context, ViewGroup parent) {
View refreshView = LayoutInflater.from(context).inflate(R.layout.layout_refresh_header_view, parent, false);
mRefreshIv = refreshView.findViewById(R.id.refresh_iv);
tv = (TextView) refreshView.findViewById(R.id.refresh_tv);
return refreshView;
}
@Override
public void onPull(int currentDragHeight, int refreshViewHeight, int currentRefreshStatus) {
// 默認狀態(tài)
if (currentRefreshStatus == REFRESH_STATUS_PULL_DOWN_REFRESH) {
tv.setText("向下拉進化血輪眼");
}
if (currentRefreshStatus == REFRESH_STATUS_LOOSEN_REFRESHING) {
tv.setText("松開手指進行進化");
} else {
tv.setText("向下拉進化血輪眼");
}
float rotate = ((float) currentDragHeight) / refreshViewHeight;
mRefreshIv.setRotation(rotate * 360);
}
@Override
public void onRefreshing() {
// 刷新的時候不斷旋轉(zhuǎn)
RotateAnimation animation = new RotateAnimation(0, 720,
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
animation.setRepeatCount(-1);
animation.setDuration(1000);
tv.setText("血輪眼進化中...");
mRefreshIv.startAnimation(animation);
}
@Override
public void onStopRefresh() {
// 停止加載的時候清除動畫
mRefreshIv.setRotation(0);
tv.setText("血輪眼進化完成");
mRefreshIv.clearAnimation();
}
}
MultiType-Adapter
MultiType-Adapter:這是一個 能讓你從復雜布局中解脫出來的庫。
Thrank
- 紅橙: 向他學習
一些說明
V 0.0.1
下拉刷新劲藐,上拉加載功能
可自定義刷新頭部
支持網(wǎng)格八堡、瀑布流布局
配合MultiType-Adapter使用讓你爽翻天
帶完善
手勢需要完善
代碼傳送門:戳我!!!
希望我的文章不會誤導在觀看的你,如果有異議的地方歡迎討論和指正聘芜。
如果能給觀看的你帶來收獲兄渺,那就是最好不過了。