美文网首页自定义控件Android深入
Android-分享一个对RecyclerView二次封装的库(

Android-分享一个对RecyclerView二次封装的库(

作者: 阿博聊编程 | 来源:发表于2022-09-14 00:47 被阅读0次
    图片来源网络,入侵必删

    在日常的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;
        }
    });
    

    以上功能是我之前项目开发中使用到的,更多详细的用法可以查看开源库文档。

    相关文章

      网友评论

        本文标题:Android-分享一个对RecyclerView二次封装的库(

        本文链接:https://www.haomeiwen.com/subject/zyrkortx.html