1、概述
RecyclerView的出现让我们在实现列表的横竖向展示、网格布局、瀑布流等样式得以简化。RecyclerView提供了一种插拔式的体验,在实现各种展示和样式的时候更加的高效。
1.1 LayoutManager
RecyclerView的内部类,实现线性布局(横竖都行)、网格布局。
可以通过RecyclerView的setLayoutManager(LayoutManager layout)方法来设置
1.2 ItemDecoration
RecyclerView的内部类,可以绘item的制分割线,可以自定各种样式的分割线。
可以通过RecyclerView的addItemDecoration(ItemDecoration decor)方法来设置。
1.3 ItemAnimator
RecyclerView的内部类,给item添加动画。
可以通过RecyclerView的setItemAnimator(ItemAnimator animator)来设置
2、示例需求
实现如下图的布局
也就是简单的网格布局,加上图片周边的分割线,这里在Fragment中使用RecyclerView来实现,图片的数据来源是写了个爬虫从网上爬的图片地址,然后记录图片url的文件放入assets目录下,通过方法读取出来;
下面一步步来实现:
1)RecyclerView的引入
使用RecyclerView需要导入support-v7的包,build.gradle文件中导入依赖
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:recyclerview-v7:26.1.0'
}
2)布局文件,一个是整体的Fragment的layout,一个是RecyclerView的adapter的item使用的layout
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swipe_ly"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/main_recyler_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.v4.widget.SwipeRefreshLayout>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"