HFLibrary系列笔记之UI篇:RecyclerView、CardView那些事儿

1.RecyclerView、CardView是嘛东东以及RecyclerView对比ListView有哪些优点?

RecyclerView:是更灵活、更高效版本的ListView,相对于ListView,灵活体现于利用LayoutManager来决定列表项的展示方式,结合对ListView和RecyclerView源代码可知,实际上RecyclerView只是一个展示的列表容器,真正对其内容排列展示管理的是LayoutManager,因此我们可以用自定义LayoutManager来满足项目中的列表展示需求,高效在于利用我们熟知的ListView的View缓存机制来显示列表项,并且能够很方便的进行列表项的删除、修改、插入等操作。



 


CardView:有悬浮阴影、圆角效果的卡片式内容显示控件

结合RecyclerView和CardView展示列表内容能更好的使app符合Material Design设计风格,让app在用户体验、界面美观度上有所提升。


2.RecyclerView、CardView的基础使用以及注意事项

     至于基础,Android官网中的sample源码已经贴的相当详细了,这里就不开启copy模式,直接附上地址:http://developer.android.com/training/material/lists-cards.html

     

     容易导致RecyclerView显示异常的注意事项:在RecyclerView.Adapter的onCreateViewHolder实现方法中用LayoutInflater.inflate创建itemView时需要传入onCreateViewHolder中parent引用

     

3.HFLibrary中对RecyclerView的相关封装(Adapter、ViewHolder、拖拽排序、swipe功能)

     HAFramework中对RecyclerView封装的关键类说明:

          1.BaseRecyclerViewAdapter:继承RecyclerView.Adapter
          2.BaseRecyclerViewHolder:继承RecyclerView.ViewHolder
          3.OnRecyclerViewItemClickListener:监听item的点击与长按事件,类似于ListView的OnItemClickListener的item点击监听事件
          4.RecyclerItemDecoration:该类继承RecyclerView.ItemDecoration,由于RecyclerView没有提供类似于ListView divider以及dividerHeight属性,而是需要实现RecyclerView.ItemDecoration抽象类来绘制RecyclerView分割线
          5.SimpleItemTouchHelperCallback、ItemTouchHelperAdapter、ItemTouchHelperViewHolder:这三个类主要是用来实现RecyclerView的长按拖拽排序功能,SimpleItemTouchHelperCallback继承ItemTouchHelper.Callback,配置RecyclerView的Item拖拽条件、Item相关状态显示以及回调处理。


         封装代码位于HFLibrary项目Framework module中src/main/java/com/aaron/android/framework/base/widget/recycleview,具体实现可以参照sample module中MainActivity的使用。


4.HFLibary框架关于RecyclerView封装的待思考完善的问题

可能后期框架中会根据产品层面上常用的列表展示方式去自定义LayoutManager


如果你发现任何的问题或者建议,欢迎提出、讨论,框架github的地址 https://github.com/AaronHuangGit/HFLibrary
          
           
     
     
     

     







      

猜你喜欢

转载自blog.csdn.net/huangrangg12/article/details/51153947