在日常的Android
開(kāi)發(fā)當(dāng)中竿屹,我們肯定會(huì)有使用到RecyclerView
的需求骆撇,這里分享一個(gè)對(duì)RecyclerView
二次封裝的開(kāi)源庫(kù)——EasyRecyclerView
醉箕。它基本上滿(mǎn)足基本的開(kāi)發(fā)需求意系,希望能幫看文章的小伙伴提高開(kāi)發(fā)效率泥耀。
引入項(xiàng)目
implementation 'com.jude:easyrecyclerview:4.4.2'
截止我發(fā)布博客,開(kāi)源庫(kù)版本為4.4.2
蛔添。想要查看最新版本請(qǐng)看開(kāi)源庫(kù)的wiki
使用示例
XML中創(chuàng)建:
<com.jude.easyrecyclerview.EasyRecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_empty="@layout/view_empty"
app:layout_progress="@layout/view_progress"
app:layout_error="@layout/view_error"
app:recyclerClipToPadding="true"
app:recyclerPadding="8dp"
app:recyclerPaddingTop="8dp"
app:recyclerPaddingBottom="8dp"
app:recyclerPaddingLeft="8dp"
app:recyclerPaddingRight="8dp"
app:scrollbarStyle="insideOverlay"http://insideOverlay or insideInset or outsideOverlay or outsideInset
app:scrollbars="none"http://none or vertical or horizontal
/>
開(kāi)源庫(kù)的作者提到痰催,EasyRecyclerView
本質(zhì)上不是RecyclerView
,上面所有屬性不是必須的迎瞧,可以選擇性使用夸溶。
設(shè)置空白的View
app:layout_empty="@layout/view_empty"
代碼中設(shè)置:
void setEmptyView(View emptyView)
設(shè)置錯(cuò)誤的View
app:layout_error="@layout/view_error"
代碼中設(shè)置:
void setErrorView(View errorView)
設(shè)置加載的View
app:layout_progress="@layout/view_progress"
代碼中設(shè)置:
void setProgressView(View progressView)
跳到固定位置
void scrollToPosition(int position);
刷新控制
void setRefreshing(boolean isRefreshing);
void setRefreshing(final boolean isRefreshing, final boolean isCallback); //第二個(gè)參數(shù)控制是否回調(diào)更新數(shù)據(jù)方法
整合了數(shù)據(jù)增刪的功能
void add(T object);
void addAll(Collection<? extends T> collection);
void addAll(T ... items);
void insert(T object, int index);
void update(T object, int index);
void remove(T object);
void clear();
void sort(Comparator<? super T> comparator);
整合的Header與Footer的實(shí)現(xiàn)
void addHeader(ItemView view)
void addFooter(ItemView view)
整合OnItemClickListener與OnItemLongClickListener
adapter.setOnItemClickListener(new RecyclerArrayAdapter.OnItemClickListener() {
@Override
public void onItemClick(int position) {
//position不包含Header
}
});
adapter.setOnItemLongClickListener(new RecyclerArrayAdapter.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(int position) {
return true;
}
});
以上功能是我之前項(xiàng)目開(kāi)發(fā)中使用到的,更多詳細(xì)的用法可以查看開(kāi)源庫(kù)文檔凶硅。