美文网首页
RecycleView

RecycleView

作者: 小徐andorid | 来源:发表于2018-03-30 10:07 被阅读0次

不同的viewholder实现item的多元化,但是没有像ListView中的onItemClickListener监听事件,需要开发者自己去实现

首先新建一个项目名字叫RecycleViewTest ,在project/app/src/bulid.gradle中引入闭包  这个闭包在引用过程中,不同的版本可能需要不同的闭包(本次引入的闭包是compile'com.android.support:design:26.1.0')

具体来说:

1

前期的准备工作:

2 3 4 5 6

设置LayoutManager,这个LayoutManager用于指定RecyclerView的布局方式,setLayoutManager()方法中可以传入不同的布局管理器,比如LinearlayoutManager, GridLayoutManager等等..

然后setAdapter();所以需要我们去写一个Adapter

7 8 9 10 11

下一步将泛型传入Adapter

12

LinearAdapter类下的LinearViewHolder(因为LinearViewHolder类在LinearAdapter类里面).

在onCreateViewHolder方法中返回一个new LinearViewHolder()(new LinearViewHolder()需要传入一个View itemView的参数,这个view便是我们的每个viewitem长什么样子的布局),我们先把这个布局画一下.在布局中简单的放置了一个TextView布局名称为layout_linear_item

13

然后onCreateViewHolder这个方法我们就搞完了,这个方法需要我们返回一个ViewHolder我们便return了一个 new LinearViewHolder,这个viewHolder里面要传入一个布局我们借助LayoutInflater传入了一个布局进去

然后在LinearViewHolder里面我们便可以把我们即将要在布局中使用的控件声明一下,

14

然后可以在onBindViewHolder中我们可以通过这个vieHolder去设置一些内容

15

最后将我们写好的LinearAdapter放入setAdapter中

16

我们还可以在recyclerview中实现各种各样的样式采用的方法是addItemDecoration方法 mRvMain.addItemDecoration();其中ItemDecoration是一个抽象类,里面有三个方法.分别是onDraw,onDrawOver,getItemOffsets.

onDraw:在我们视图被绘制之前我们可以在绘制之前先绘制一些内容,相当于你先绘制了一个背景,然后在这个背景上面绘制一些东西,然后它才开始把这个item放在背景上面.

onDrawOver:是后绘制的,也就是说你的这个item都绘制完了,然后它在你每个item元素上面在进行绘制,也就是说你的item已经成了背景,先把你的item放上去,然后在你的item上面再绘制一些内容.

getItemOffsets:在你的item周边绘制一些内容

17

实现点击事件

在LinearAdapter中的onBindViewHolder方法中holder.itemView.setOnClickListener()

18

第二种方法:通过回调方法来实现在Adapter里写一个接口然后在activity中通过回调方法来实现点击事件

19 20 21 22

相关文章

网友评论

      本文标题:RecycleView

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