RecycleView

不同的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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容