https://www.jianshu.com/p/b4bb52cdbeb7
https://www.jianshu.com/p/8379ea2bc63b
https://www.jianshu.com/p/0bd4bc12c170
RecyclerView是Android一个更强大的控件,其不仅可以实现和ListView同样的效果,还有优化了ListView中的各种不足。其可以实现数据纵向滚动,也可以实现横向滚动(ListView做不到横向滚动)。接下来讲解RecyclerView的用法。
官宣:A flexible view for providing a limited window into a large data set。
RecyclerView是在Android5.0版本作为support-v7的一个组件出现,高效替代了最初的ListView等列表组件。使用上实现了视图代码解耦,功能上具备强大的item复用机制,并且提供默认多种LayoutMananger用来处理多种布局,本篇介绍RecyclerView重要组件和基本使用。
1、RecyclerView重要组件
- LayoutManager :管理视图渲染、包含视图复用回收等功能。本身是一个抽象类,系统已经实现的子类有LinearLayoutManager、GridLayoutManager、StaggeredGridLayoutManager等。
- Adapter: 适配器、数据和视图对接的桥梁。
- ItemDecoration:装饰抽象类,常常用来实现列表的分割线或者实现悬浮等功能。
- ItemAnimator:动效抽象类,常用定制item动画需求。
Adapter:继承自RecyclerView.Adapetr类,主要用来将数据和布局item进行绑定。
LayoutManager:布局管理器,设置每一项view在RecyclerView中的位置布局以及控件item view的显示或者隐藏。当View重用或者回收的时候,LayoutManger都会向Adapter来请求新的数据来进行替换原来数据的内容。这种回收重用的机制可以提供性能,避免创建很多的view或者是频繁的调用findViewById方法。这种机制和ListView还是很相似的。
自定义控件
通过在布局文件里引用自定义控件 com.example.uicustomviews.TitleLayout. 在类TitleLayout中 加载自定义的布局文件R.layout.title.如下:
LayoutInflater.from(context).inflate(R.layout.title, this);
可以看到,我们使用了<fragment>标签在布局中添加碎片,其中指定的大多数属性你都
是熟悉的,只不过这里还需要通过 android:name 属性来显式指明要添加的碎片类名,注意一
定要将类的包名也加上。