问题标签 [nestedrecyclerview]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 在嵌套的 RecyclerViews 中保持滚动位置
我有一个ViewHolder
包含另一个RecyclerView
. 这种类型的ViewHolder
被重复使用多次。
由于ViewHolder
是在不同项目之间共享的,所以 的滚动位置RecyclerView
也是在项目之间共享的。例如,您滚动到第一项的末尾,第五项的 RecyclerView 也滚动到最后,因为视图被重用。
我试图通过映射 1ViewHolder
到 1 项来解决这个问题。
我尝试itemId
为该项目设置一个,调用RecyclerView.ViewHolder#setIsRecyclable(false)RecyclerView.getRecycledViewPool().setMaxRecycledViews()
,并按照此答案中的说明进行扩展/设置
在我向下滚动并向上滚动(ViewHolder
被回收)后,内部 RecyclerView 的滚动位置被重置为第一项。
android - 如何在垂直 RecyclerViews 中同步所有水平嵌套 RecyclerViews 的滚动?
背景
假设我有一个垂直的 RecyclerView,其中每一行都是一个水平的 RecyclerView。
我想做的是,无论您滚动哪个水平 RecyclerViews,所有其他 RecyclerViews 都会相应滚动,并且始终与完全相同的滚动 X 坐标同步
问题
我实际上对基本操作做得很好:
它的工作原理是拥有一个所有水平 RecyclerView 都具有的滚动侦听器,但是当一个开始滚动时,它是唯一拥有它的侦听器,同时它也会影响其他人一起滚动。
但是,我所做的有两个主要问题:
在一些(水平)滚动操作中(可能是一些手势,比如 fling),多个 RecyclerView 的滚动是不同步的,所以有些在 X 坐标中,与其他的不同。
垂直滚动时,我无法正确设置 X 坐标。不仅如此,当我期望调用垂直 RecyclerView 的 onBindViewHolder 时,它不会被调用(当我滚动很多时调用,而不仅仅是当我看到重新显示使用过的对象时调用)。
我试过的
这是当前代码:
MainActivity.java
activity_main.xml
Horizontal_recycler_view.xml
single_item.xml
问题
导致它无法滚动同步的代码有什么问题?
是否有可能我也没有获得我应该拥有的所有 RecyclerViews?
当我期望它时,垂直 RecyclerView 的 onBindViewHolder 怎么没有被调用?
如何在垂直的 onBindViewHolder 中将水平 RecyclerView 的 x 坐标滚动设置为其他滚动?
我不确定这是否是个问题,但如果每个水平 RecyclerView 中的每个项目的宽度可能与其他项目不同,我该怎么办?
android - 嵌套的recyclerview无限滚动不起作用
我有 recyclerview,其中包含水平子回收器视图,最后它有一个无限滚动垂直回收器视图子
我已将 wrap_content 高度添加到子垂直回收器视图,因此我无法将滚动侦听器添加到此子回收器视图
我已经向最外层的父 recyclerview 添加了无限滚动侦听器,但滚动只能工作到第 2 页,然后它不起作用我如何实现嵌套的无限滚动。以下是我在父 recyclerview 上应用的监听器代码
android - 如何在 cardview 中设计 gridview 类型的视图并在代码中实现它?
我已经制作了 recyclerView ,但我不知道如何设计 cardview 。因为它里面有 4 个自定义项目。
我怎样才能获得对卡片项目的访问权限?
在我的卡片视图设计布局中,我在卡片视图内放置了一个网格视图,但我无法弄清楚如何使用 ArrayList 访问网格视图项目。
我的cardview设计布局
android - RecyclerView 项中的 RecyclerView
我知道这是一个坏主意,但我在另一个 RecyclerView 的项目中使用 RecyclerView 来显示包含列表的项目列表。
我设法让它工作并尽可能地对其进行调整,但是green
当具有更多项目的列表开始显示并在屏幕上绘制时,我仍然会遇到这些尖峰。
这些尖峰在翻阅物品时会产生明显的延迟,并且在使用比三星 Galaxy S6 更慢和更旧的东西时更加明显。
我做了一些日志记录,看来outer
ViewHolders 正在被回收,而inner
RecyclerView 的适配器只创建了 5 次,所以它一定是绘图时间扼杀了性能。
我已经设法通过设置 RecycledViewPool 中的 ViewHolders 的最大数量来限制新inner
RecyclerView 的 ViewHolders 的创建,但这只起到了一点作用。
我知道内部 RecyclerView 没有“底部”,它可以依靠它来计算何时显示新项目,因此它必须立即绘制每个项目,这可能是不应使用此设置的主要原因。(当我写下这个问题时,我才恍然大悟。谢谢世界上的橡皮鸭)。
有没有办法可以进一步调整,或者你能建议如何在另一个 RecyclerView 的项目中使用除 RecyclerView 之外的其他设置来完成这项工作吗?
如果需要,我会提供更多信息。
谢谢
android - 嵌套的 Vertical RecyclerView 的行为类似于一个 recyclerview
编辑我通过使用CoordinatorLayout
和 aAppBarLayout
作为标题的包装解决了这个问题,而TabLayout
. 应该很明显,但是哦。
原始问题:我有一个设计,我尝试了多次迭代来完成我的应用程序。我知道嵌套可滚动视图不是更喜欢,但我相信是可行的,我真的找不到我正在寻找的具体问题的答案,所以就到这里。
这是设计的简单模型以及我如何想象如何实现它:
这是某种配置文件设计,顶部有一些文本视图、横幅、头像和jadajada。下面是三个选项卡,用于切换它们下面的内容。
每个选项卡的内容都是同一种对象,它们只是有自己的“过滤器”
下面的实现在开始时非常简单。
我们使用recyclerview
在里面我们有一些不同的viewholders,其中一个包含一个viewpager。
viewpager 包含其中包含另一个 recyclerview 的片段。
通过这种方式,我发现了很多问题。而且还没有真正完成,所以一切都感觉就像一个单一的滚动视图。
我也尝试过对所有内容都使用一个回收视图,但选项卡之间的动画并不是我们真正想要的,这也是一个真正的不一致混乱。
我认为我真正的问题是我是否将水放在头上,我应该以不同的方式解决这个问题吗?有没有其他人以优雅的方式做到这一点?
android - 嵌套Recyclerview(recyclerview 内recyclerview)如何优化?滚动,性能问题
我一直在努力解决这个 [nested recyclerview] 问题。
最大的问题是性能。
当我向下或向上滚动时,会出现烦人的滞后现象。
我发现了一些建议 [使用可扩展的 recyclerview,而不是使用嵌套的 recyclerview] 但是,我无法将其调整为 mycase。
我会附上我的结构和我的一些代码。
你能检查一下并给我一些好的建议吗?提前谢谢。
- 1> 这是我的列表项结构。带有 CardView 项的 Recyclerview,每个 cardView 都有列表项。它的长度是可变的,所以我是通过recyclerview制作的。
- 2> 这是我的代码。
ViewHolder 中的代码
/li>
& * 适配器中的代码
谢谢 !!!
android - 使用回收器视图的复杂屏幕的Android设计考虑
以下将是我的应用程序中的布局
所以我正在考虑使用回收站视图。将有一个父recyclerview,我将为每个部分定义不同的视图类型,例如viewpager、水平块等。根据视图类型,将创建不同的viewholders。水平块将显示在水平回收器视图中。对于网格,在另一个视图中会有一个回收器视图。每个部分的数据将从不同的 API 加载。意味着第一个 API 将只提供元数据,使用该元数据,将调用另一个 API,其数据将用于填充块中。
我的问题是,这是否是拥有父回收者视图、定义视图类型并在视图中拥有其他回收者视图的好方法。由于我将 recyclerview 嵌套在其他回收器中,因此这种方法应该可以提高性能,或者还有其他一些方法可以实现这种设计。
我正在使用回收站视图,因为它很容易实现分页。
PS:我没有使用线性布局,因为在线性布局上实现分页有点棘手。我发现在 listview/recycler 视图中更容易。此外,如图所示的列表/网格等部分是动态的,并且没有固定的数字,它们最多为 2 或 5。它可以最多为 n。因此,对于线性布局,我必须在循环中添加所有部分,如果没有,这将是矫枉过正。的部分相当大。
android - Vertical RecyclerView 对嵌套的 Horizontal RecyclerView 的滚动做出反应
在我的活动中,我有 ViewPager 由片段组成。我使用 CustomViewPager 禁用了 ViewPager 上的滑动动作。
我的片段布局有 Vertical RecyclerView,在这个 RecyclerView 里面有多个 Horizontal RecyclerViews。
为了确保我的 AppBarLayout 正确响应滚动行为,我在每个 Horizontal RecyclerView 上以编程方式将 nestedScrollingEnabled 设置为 false。
PS我正在使用recylerview 25.4.0版
问题如您在上面附加的 gif 中所见,要滚动水平 recyclerview,触摸应该是完全横向的,即使对于水平 recyclerview 上的轻微倾斜运动,垂直 recyclerview 也会拾取该事件并垂直向上和向下滚动页面。如何解决这个问题?
CustomViewPager.java
片段布局
recyclerview_productoverview(Vertical RecyclerView)里面的item布局
水平 RecyclerView:@id/recyclerview_item_section