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

我应该在recyclerView中使用recyclerView,还是有更好的方法?

在RecyclerView中使用RecyclerView是可能的,但通常不是最佳的方法。RecyclerView是Android提供的一种用于展示大量数据的高效列表控件,它可以通过LayoutManager来实现不同的布局方式,如线性布局、网格布局等。然而,如果在RecyclerView的每个列表项中再嵌套一个RecyclerView,会导致嵌套层级过深,可能会影响性能和用户体验。

相反,更好的方法是使用RecyclerView的ItemDecoration来实现类似嵌套RecyclerView的效果。ItemDecoration是RecyclerView提供的一种装饰器,可以在列表项之间绘制分隔线、间距等效果。通过自定义ItemDecoration,可以实现类似嵌套RecyclerView的布局效果,同时避免了嵌套层级过深的问题。

另外,如果需要展示的数据结构比较复杂,可以考虑使用ExpandableListView或者RecyclerView的ExpandableLayoutManager来实现可展开的列表效果。这样可以在列表项中展示更多的信息,而无需嵌套RecyclerView。

总结起来,虽然在RecyclerView中使用RecyclerView是可能的,但一般情况下不推荐这样做。更好的方法是使用RecyclerView的ItemDecoration来实现类似嵌套RecyclerView的效果,或者考虑使用ExpandableListView或者RecyclerView的ExpandableLayoutManager来实现可展开的列表效果。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用优化 | RecyclerView可优化

所以说就算你没有使用 ViewHolder,你 item 还是会被复用,不同是他会重新进行 findViewById 操作。 ​...从Cache 拿到缓存可直接进行使用,无需重新创建可绑定数据。...6,RecyclerView item 广告统计 在 ListView 通过 getView() 方法进行统计是没有问题。每次滑动时候都会调用 getView() 方法。...onBindViewHolde 这个方法不是每次都调用可能你看到了item 10 多次,但是只统计了 5,6次。这种情况下数据就是错误。 如何解决呢?...每看到一次,这个方法就会执行一次 7,你可能不知道 RecyclerView 性能优化策略 不要在 onBindViewHolder 方法创建点击事件 在创建 ViewHolder 时候创建

1.4K20

使用优化 | RecyclerView可优化

所以说就算你没有使用 ViewHolder,你 item 还是会被复用,不同是他会重新进行 findViewById 操作。 ​...从Cache 拿到缓存可直接进行使用,无需重新创建可绑定数据。...6,RecyclerView item 广告统计 在 ListView 通过 getView() 方法进行统计是没有问题。每次滑动时候都会调用 getView() 方法。...onBindViewHolde 这个方法不是每次都调用可能你看到了item 10 多次,但是只统计了 5,6次。这种情况下数据就是错误。 如何解决呢?...每看到一次,这个方法就会执行一次 7,你可能不知道 RecyclerView 性能优化策略 不要在 onBindViewHolder 方法创建点击事件 在创建 ViewHolder 时候创建

1.4K30

Android解决RecyclerView各种点击事件方法

应最近项目需求实现itemView子项点击事件,便写篇博客记录一下,若是能够帮到你,深感荣幸。接下来,便对RecyclerView进行简单封装,使得它更方便实现各种点击事件。...我们都知道,对与RecyclerView使用,是创建一个adapter类,然后在adapter类再创建一个ViewHolder内部类。...查看源码便知道,View方法 setTag(Object obj); 我们就可以将对应position赋值给这个tag,我们使用ViewgetTag() 方法就可以得到对应点击Viewposition...其中参数tagPosition便是对应itemVIew处于RecyclerView位置。...最后 方法不止一种,这样地操作方式,这只是一种思考。 以上就是本文全部内容,希望对大家学习有所帮助。

2.8K10

RecyclerView监听EditText变化BUG解决方法

需求:一个列表,列表中有一个edittext(只能输整形),外部一个整形变量Int,每次改变列表其中一项edittext值时,外部Int都会改变。...但是这样也引出了一个问题,就是今天要说BUG 要讲BUG是RecyclerView导致数据错乱问题 要讲BUG是RecyclerView导致数据错乱问题 要讲BUG是RecyclerView...导致数据错乱问题 重要事情说三遍 你想想,对于addTextChangedListener这个方法,你每次对edittext进行setText操作后都会调用这个方法,不巧recyclerview是复用容器...这逻辑看是完美,但是recyclerview帮你settext时,你befour就是复用前item数,而now就是新settext上去数。...这样写的话在beforeTextChanged方法获取就不是复用前item数据,而是当前数据。

1.6K20

RecyclerView使用CheckBox出现勾选混乱解决方法

熟悉RecyclerView的人应该都知道,RecyclerView使用了复用机制,当在RecyclerView得每一项都添加一个CheckBox时,勾选当前页面的几个CheckBox会发现下面还有其他...首先当然是创建一个项目,然后在activity_main添加一个RecyclerView控件,当然,在这之前,我们需要先添加RecyclerView依赖,如下图: ?...,然后设置CheckBox选中监听器,把null作为参数传进去,然后用数组值设置对应CheckBox选中状态,最后再一次设置CheckBox选中监听器,把CheckBox选中状态储存在数组相应位置...下面我们来讨论一下,如果要在RecyclerView外面再添加一个CheckBox,用外面的CheckBox来控制RecyclerViewCheckBox全选和取消全选,要如何实现呢?...机会,这样它保留position一直是未进行删除操作前postion值,对于尚未进入画面的单项来说,它会使用position值(好吧这段是抄,其实也不太懂啥意思),解决方法如下: myViewHolder.button.setOnClickListener

1.7K20

安卓易学,爬坑不易——腾讯老司机RecyclerView局部刷新爬坑之路

话说真相,首先来对比一下局部刷新前后效果: 优化之前效果: ? 优化之后效果: ? 可以看到,优化之后,列表这张大图不在有一闪一闪亮晶晶效果了! 那么,这是如何做到呢?...好吧,此时已经有点崩溃了,显然这个也不是结果,那么此时是否应该在静下来想一想,自己对于可能几种原因做过一些对策,是否哪里遗漏了。经过思考,发现并没有!!...那么一定是还有其他原因,没有考虑到! 还是去翻一翻RecyclerViewapi吧,注意到了这个api: ? ?...了解到这个方法使用方式是这样: ?...总结 实际上RecyclerView做局部刷新是非常容易,其实就是使用好带payload参数这个notifyItemRangeChanged方法,以及override带payload这个onBindViewHolder

76920

郭神抽丝剥茧心法修炼: 深剖RecyclerView

7000 行,但是注释没了以及其他问题,不得不使用其他版本 RecyclerView 库。...如果你代码 RecyclerView 没有使用 Wrap_Content,那么大部分使用场景 RecyclerView 长宽 SpecMode 都为 EXACITY,这么说,不是意味着要抛弃...,从名字可以看出,这是一个回调接口,所以,猜动画真实执行应该在实现接口方法实现,不过,我们还是要先看 ViewInfoStore 动画如何执行: void process(ProcessCallback...这里必要说明一下,一些删除或者新增操作,通过使用适配器通知删除或者新增方法,最终还是会通知界面进行重绘。...后续博客将和大家一起学习 RecyclerView 其他部分。敬请期待!

1.3K20

RecyclerView性能优化最后一公里

很诡异是,就算是到2021年秋天,无论你怎么搜索,还是很难找到正确使用ViewCacheExtension方法。...当我们穷尽所有方法,把RecyclerView调优方案都用尽了时候,用好ViewCacheExtension就成了将RecyclerView性能优化到极致最后一公里。...当然你可能会说,用ConstraintLayout将布局优化到极致,能力强而且能吃苦耐劳,前辈写复杂且低效布局信心有能力优化好。退一步讲,这些你都做很好了。...❝答案当然是。用ViewCacheExtension来优化。用它来优化RecyclerView初始化时创建View对主线程阻塞时长。 ❞ 3. 从一个案例说起 首先模拟复杂View场景。...linearLayout) linearLayout.removeView(itemView) //背景设置成红色为了更好测试是否用到了正确缓存

1.3K20

RecyclerView滑动时卡顿怎么办?

大家好,近期刚完成了一个商城类软件,首页就是用recyclerview多布局实现,近期优化让不得不去深入了解一下recycleview这个控件。...1.recyclerviewitem加载顺序 recyclerview 使用大家肯定不陌生了,但是每个item加载顺序还是必要了解一下,知道item显示出来流程。..., 对于列表来说,不管用RecyclerView 还是ListView,我们都会用ViewHolder来复用布局。...3.优化图片加载 在别的文章中看到并且用在了自己软件,图片加载优化是最有效办法,而且很多主流app中新浪微博,qq,今日头条等也在使用,因为列表在滚动过程,如果布局很复杂,样式也很多,那就需要考虑滚动时候不做复杂布局及图片加载...问题去解决,总归RecyclerView是非常棒控件,值得去学习,使用。 大家有什么问题可以留言,一起学习交流,或者什么更好办法,欢迎分享。

3.1K20

终于来了:Android端个人中心页面滑动冲突优化方案

触发自身滑动就是调用自己 scrollBy(0,dy),注意 此时事件还是会往下传递到 RecyclerView ,但是由于相对于 RecyclerView 自身来说滑动差值很小,视觉上可忽略。...出现问题时,用户手先触发左右滑动,这时候由于 RecyclerView 父布局 ViewPager 一些临界判断没被触发,所以没拦截事件,事件还是到了 RecyclerView ,此时如果再次上下滑动...2倍,进行拦截 我们需要把相关判断代码都 copy 过来,然后加入到我们自定义 LinearLayout image.png image.png 此时进行 Log 调试发现还是问题, 原来...方法应该返回 true 。...以上是个人对于抖音“个人中心”页面滑动冲突优化拙见及优化方案,仅仅是自己做过简单测试,个人觉得更好方案可以使用谷歌嫡系 CoordinatorLayout 来处理这种嵌套滑动。

97520

Android开发之漫漫长途 XVI——ListView与RecyclerView项目实战

至于怎么准备,以及在面试遇到问题还有面试结果之类,我们下面呢会挑一些与ListView和RecyclerView相关内容说一下,至于其他后文再说,毕竟不能打乱我们之前行文安排(嗯,就是这么一个十分节操的人...面试遇到关于ListView以及RecyclerView问题 第一题 ListView缓存复用机制 还是免不得笔试啊,,起码面试几家公司80%让答一份试卷,而且给你时间与试卷复杂度基本上对应不上...有没有更好方案。 然后面试官说了一句,可不可以考虑用RecyclerView作为根部局,然后嵌套RecyclerView呢,,茅塞顿开,,然后就没有然后了。...ListView,还是正被广泛使用RecyclerView,这两者都在面试碰到过。...ListView:对于ListView来说,考察最多是关于ListView性能优化(其原理也是ListView复用机制),使用ViewHolder,然后在重写getView方法复用convertView

49910

轻松掌握RecyclerView缓存机制

RecyclerView 缓存机制如何工作 RecyclerView 缓存机制工作流程如下: 当 RecyclerView 需要展示一个新 View 时,它会首先从 View Cache 查找是否可重用...如果 View Cache 没有可重用 View,RecyclerView 会从 Scrap Cache 查找是否可重用 View。...这样可以更好地释放内存,从而避免内存泄漏问题。...使用多个 RecyclerView.Adapter 来处理不同类型数据 对于不同类型数据,使用不同布局文件和 ViewHolder,从而更好地利用缓存池机制,并且避免不同类型数据混搭异常。...使用 setHasFixedSize() 方法RecyclerView 初始化时调用 setHasFixedSize() 方法,可以告诉 RecyclerView 什么时候它大小不会发生变化。

41221

功能强大Android滚动控件RecyclerView

RecyclerView使用比ListView使用是比较复杂,ListView使用是五个步骤,而我们RecyclerView使用7个步骤,分别为: 1.在当前项目的build.gradle...因为Android将RecyclerView定义在support库,想要使用该控件就必须要添加相应依赖库才可以。所以就有了第一步操作。...当系统添加完时候,你会发现布局界面还是没有任何东西,别着急!...其实RecyclerView还有点击事件这里就没有写了。如果后期小伙伴们需要可以添加上去。...其实这个也是实现瀑布流效果代码,如果咱们想要实现瀑布流效果,只需要把子项布局设置为只显示图片(瀑布流需要使用大小不同图片才能看出更好效果),并调整一下布局参数就行了

96641
领券