首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android RecyclerView实现多种item布局的方法

在项目中列表是基本都会用到的,然而在显示列表时,我们需要的数据可能需要不止一种item显示,对于复杂的数据就需要多种item,以不同的样式显示出来,这样效果是很棒的,我们先看一下效果 ? ?...我们可以看到,这个RecyclerView中有多种item显示出来,那么具体怎么实现呢,其实在RecyclerView中,我们可以重写方法getItemViewType(),这个方法会传进一个参数position...,这样就能够实现多种item显示了,讲了这么多我们看一下具体的例子 @Override public int getItemViewType(int position) { if(list.size...parent, false); return new NewsViewHolder(view); } } 上面的代码就是具体为每种viewType引入其对应的布局,这样就基本实现了多种...RecyclerView有多少项数据,然后在onCreateViewHolder()中加载item布局实例化ViewHolder,然后在onBindViewHolder()中完成数据的绑定即可。

3.9K21
您找到你想要的搜索结果了吗?
是的
没有找到

ListView之多种类型Item

本文重点介绍后者,也就是多类型item的listview的实现思路和方法,比如实现一个这样的聊天会话页面: 二、实现思路 2.1 第一种思路:用“一种类型”变相实现多种类型 这种思路其实与 ListView...2.2 第二种思路:利用Adapter原生支持的多类型 其实 android.widget.Adapter 类已经原生支持了多种类型item的模式,并提供了 int getViewTypeCount()...本文采用第二种思路实现多种类型item的listview。...其实不然,android针对多种类型item的情况已经做好处理了,如果getView传入的 convertView 不为null,那它一定与当前item的view类型是匹配的。...下面简要剖析一下支持多种类型item的listview中,View回收的工作机制。

42410

Android中RecyclerViewitem宽高问题详解

前言 本文主要给大家介绍了关于Android中RecyclerViewitem宽高问题的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。...看过源码就知道原来我们要传的parent这个参数就是这个recyclerview。 ? ? ? 从这里发现原来我们用到的parent就是RecyclerView.this。...这就说明只要在创建view之前有recyclerview,那么即便是在adapter之前创建view也能让这个view在recyclerview中正常显示 ?...附加内容:另类解决item的宽高问题 上面的内容是我挺早前写的,现在遇到新的情况所以补充一下。上面我们说了,如果在创建item时不指定parent,最后展示的效果是会包裹内容。...但是,有的时候你解耦把RecyclerViewitem的耦合度降得很低,这是创建item布局要拿到RecyclerView这个parent很麻烦,这时怎么办?

1.4K21

详解Recyclerview item中有EditText使用刷新遇到的坑

由于工作项目的需要要对商品购买之后添加评价的功能,于是自己仿淘宝的评价的效果图作为自己项目中的评价效果图.但是在开发中遇到了一个大坑,就是在动态添加照片之后,刷新适配器的时候.item中的EditText...position).getBuyerEvaluate()); holder.mEtEvaluate.addTextChangedListener(watcher); 最后在网上找了很久才知道是Recyclerview...条目复用的时候导致监听事件的重绘,所以只需要去掉Recyclerview的复用就可以完美的解决这个问题饿.但是我们又知道Recyclerview是自带复用的怎么去除复用呢?...只需要在onBindViewHolder(EvaluateHolder holder, int position)中添加如下的的代码就可强制的停用Recyclerview的复用,两种解决方案 第一种就是强制的停用...Recyclerview的复用: holder.setIsRecyclable(false); 第二种通过view的setTag()方法解决Recyclerview的复用代码如下: holder.mEtEvaluate.setTag

1.6K30

使用 RecyclerView 实现 Gallery 画廊效果,并控制 Item 停留位置

RecyclerView 作为一个列表滑动控件,我们都知道它既可以横向滑动,也可以竖直滑动,可以实现线性布局管理,瀑布流布局管理,还有 GridView 布局管理。...其实我们可以控制其 Item 的停留位置,并使其实现画廊效果。如果大家熟悉 SnapHelper 的话,估计大家就都会了。...效果如下: 居中实现方式 使用 SnapHelper 配合 RecyclerView 实现控制 Item 位置居中显示,非常简单,官方默认提供的 LinearSnapHelper 就是居中的,我们直接使用即可...,其实我们也可以自定义,比如:靠左显示,让可见的第一个 Item 居左显示。...layoutManager.findViewByPosition(lastChild); } View child = layoutManager.findViewByPosition(firstChild); //获取偏左显示的Item

3.1K70

Recyclerview添加头布局和尾布局、item点击事件详解

简介: 本篇博客主要包括recyclerview添加多种布局以及添加头布局和尾布局,还有item点击事件 思路: 主要重写Recyclerview.Adapter中的一些方法   1.public...holder, int position) 根据holder的不同绑定不同的数据 案例: 主布局中只有一个Recyclerview,里面的item除了基本的两种类型,还有头布局和尾布局,点击基本类型跳转到另外一个...(R.layout.item_recyclerview,parent,false); return new ViewHolder(view); }else if(viewType==ITEM_TWO){...View view=LayoutInflater.from(context).inflate(R.layout.item_recyclerview2,parent,false); return new...; } if(isFootView(position)){ return ITEM_FOOT; } if(position%2==0){ return ITEM_ONE; }else{ return ITEM_TWO

1.3K41

曝光埋点方案:recyclerView中的item曝光逻辑实现

那如何实现 列表(recyclerView)中item的曝光埋点呢? 一、曝光埋点 的问题点 首先,客户端要考虑的就是只管调用api上报:上报item可见、上报item不可见。...所以本文重点就是,滑动recyclerViewitem变为可见、变为不可见,什么时候、怎么样 上报。 二、曝光逻辑分析 如下淘宝首页,竖向列表中有很多模块item,聚划算、天天特卖、猜你喜欢等等。...视觉可见,2、获取此时recyclerView中 第一个、最后一个 视觉可见item的position。...如果item内部 是 可滑动的recyclerView,那么就item可见时 子列表也做滚定监听就可以了,即内部的recyclerView也是用setRecyclerItemExposeListener...的item可见状态的监听 * @param recyclerView recyclerView * @param onExposeListener 列表中的item可见性的回调

5.1K10

Android使用CardView作为RecyclerViewItem并实现拖拽和左滑删除

引言 CardView是Android 5.0系统之后引入的众多控件之一,实现之后的效果也是比较酷的,它经常被用在RecyclerView和ListView中的Item中。...今天我们就来了解一下CardView的属性,然后使用CardView和RecyclerView结合实现一个可以拖拽Item的布局。...MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = mInflater.inflate(R.layout.item_my_recyclerview...MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = mInflater.inflate(R.layout.item_my_recyclerview...public void clearView(RecyclerView recyclerView, ViewHolder viewHolder):当用户操作完某个item并且动画也结束后会调用该方法,一般我们在该方法内恢复

1.9K10

解决RecyclerView点击一个item,后面每间隔9个item就会触发一次同样的事件的问题

当你通过点击事件改变第一个item的状态之后,向下滑动到第10个item也会同样触发,然后第19、28、37、46等等,每间隔9个item就会重复之前的操作后的显示状态。...终于在一位兄弟的文档中找到了这么一句代码recyclerview.setItemViewCacheSize(int)其实就是一个缓存的问题,只要在recyclerview相应的activity或者fragment...中设置int是缓存数,默认值为5,每间隔(4+5)个item就会进行复用,如果你把它设为10,那么每间隔(4+10)个item就会复用,你只要把int的值设为:【item数 - 4】即可!...BaseAdapter adapter = new BaseAdapter();//适配器的总行数 - 4recyclerview.setItemViewCacheSize(adapter.getCount

31750
领券