在日常的Android
开发当中,我们肯定会有使用到RecyclerView
的需求,这里分享一个对RecyclerView
二次封装的开源库——EasyRecyclerView
。它基本上满足基本的开发需求,希望能帮看文章的小伙伴提高开发效率。
引入项目
implementation 'com.jude:easyrecyclerview:4.4.2'
截止我发布博客,开源库版本为4.4.2
。想要查看最新版本请看开源库的wiki
使用示例
XML中创建:
<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"//insideOverlay or insideInset or outsideOverlay or outsideInset app:scrollbars="none"//none or vertical or horizontal />
开源库的作者提到,EasyRecyclerView
本质上不是RecyclerView
,上面所有属性不是必须的,可以选择性使用。
设置空白的View
app:layout_empty="@layout/view_empty"
代码中设置:
void setEmptyView(View emptyView)
设置错误的View
app:layout_error="@layout/view_error"
代码中设置:
void setErrorView(View errorView)
设置加载的View
app:layout_progress="@layout/view_progress"
代码中设置:
void setProgressView(View progressView)
跳到固定位置
void scrollToPosition(int position);
刷新控制
void setRefreshing(boolean isRefreshing);void setRefreshing(final boolean isRefreshing, final boolean isCallback); //第二个参数控制是否回调更新数据方法
整合了数据增删的功能
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的实现
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; }});
以上功能是我之前项目开发中使用到的,更多详细的用法可以查看开源库文档。
来源:
互联网
本文观点不代表码客-全球程序员交流社区立场,不承担法律责任,文章及观点也不构成任何投资意见。
评论列表