RecyclerView
类似ListView 的 效果 可以提供 横向的 纵向的 ListView 横向的 纵向的 GridView 瀑布流View 实现效果
1. 添加依赖 (v7包下的 )
compile 'com.android.support:recyclerview-v7:24.0.0'
RecyclerView使用方法:
1. 实例化 Layoutmanager
LinearLayoutManager 线性的 相当于ListView
GridLayoutManager 网格的 相当于GridView
StaggerLayoutManager 瀑布流
RecyclerView设置 LayoutManager 决定 样式
2.设置Adapter
Adapter 必须继承RecyclerView.Adapter <内部ViewHolder类>
重写三个方法
onCreateViewHolder 创建ViewHolder 对象 并实例化ItemView
onBindViewHodler 使用holder 对象绑定数据
getItemCount 返回List集合的长度
内部ViewHolder 类 继承 RecyclerView.ViewHodler{}
必须添加 含有super的 构造方法
在ViewHolder 里声明并实例化itemView里面的每一个View
3.设置监听
没有监听 需要 在Adapter 里面定义一个 interface 并填写监听方法
给itemView设置监听 并在监听中进行回调
4.设置分割线
设置RecyclerView 的 addItemDecoration 添加分割线
分割线修改 values 文件夹下 styles 中的 android:listDivider 属性
5.下拉刷新
使用外层套用SwipeReferenceLayout 来实现下拉刷新
6.上拉加载更多
原理 :
给RecyclerView 多添加一条Item 作为FooterView
实现方式:
使用RecyclerView设置onScrollListener 根据Adapter 获取 最后一条可见的position 判断是否是最后一条
在Adapter 重写 getItemViewType 方式返回 itemView 的类型
在onCreateViewHolder的时候返回不同的ViewHolder
创建 两个ViewHolder 一个代表普通的 ItemViewHolder 一个代表FooterViewHolder
进行数据绑定判断即可
CardView compile 'com.android.support:cardview-v7:24.0.0'
有圆角和阴影的FrameLayout
ViewGroup 直接设置属性即可
android:foreground="?android:attr/selectableItemBackground" 水波纹
app:cardBackgroundColor="@android:color/holo_blue_light" 背景色
app:cardCornerRadius="10dp" 角度
app:cardElevation="5dp 景深 阴影
类似ListView 的 效果 可以提供 横向的 纵向的 ListView 横向的 纵向的 GridView 瀑布流View 实现效果
1. 添加依赖 (v7包下的 )
compile 'com.android.support:recyclerview-v7:24.0.0'
RecyclerView使用方法:
1. 实例化 Layoutmanager
LinearLayoutManager 线性的 相当于ListView
GridLayoutManager 网格的 相当于GridView
StaggerLayoutManager 瀑布流
RecyclerView设置 LayoutManager 决定 样式
2.设置Adapter
Adapter 必须继承RecyclerView.Adapter <内部ViewHolder类>
重写三个方法
onCreateViewHolder 创建ViewHolder 对象 并实例化ItemView
onBindViewHodler 使用holder 对象绑定数据
getItemCount 返回List集合的长度
内部ViewHolder 类 继承 RecyclerView.ViewHodler{}
必须添加 含有super的 构造方法
在ViewHolder 里声明并实例化itemView里面的每一个View
3.设置监听
没有监听 需要 在Adapter 里面定义一个 interface 并填写监听方法
给itemView设置监听 并在监听中进行回调
4.设置分割线
设置RecyclerView 的 addItemDecoration 添加分割线
分割线修改 values 文件夹下 styles 中的 android:listDivider 属性
5.下拉刷新
使用外层套用SwipeReferenceLayout 来实现下拉刷新
6.上拉加载更多
原理 :
给RecyclerView 多添加一条Item 作为FooterView
实现方式:
使用RecyclerView设置onScrollListener 根据Adapter 获取 最后一条可见的position 判断是否是最后一条
在Adapter 重写 getItemViewType 方式返回 itemView 的类型
在onCreateViewHolder的时候返回不同的ViewHolder
创建 两个ViewHolder 一个代表普通的 ItemViewHolder 一个代表FooterViewHolder
进行数据绑定判断即可
CardView compile 'com.android.support:cardview-v7:24.0.0'
有圆角和阴影的FrameLayout
ViewGroup 直接设置属性即可
android:foreground="?android:attr/selectableItemBackground" 水波纹
app:cardBackgroundColor="@android:color/holo_blue_light" 背景色
app:cardCornerRadius="10dp" 角度
app:cardElevation="5dp 景深 阴影