问题标签 [android-concatadapter]
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 - ConcatAdapter how to change scroll position of inner RecyclerView that is located in an Adapter from another Adapter?
In the image section with Favorites and the horizontal RecyclerView is one adapter, adapterFavoriteProperties, while the row with chart is another adapter, adapterChart, of the main RecyclerView. Main RecyclerView is composed of rows that coming each from different adapter that is glued with Concat Adapter.
Also adapter for chart has a lambda available in the fragment
The section that contains title, see All and recyclerView is
And it's adapter
and ViewHolder
This where i should have either reference of RecyclerView or have ViewHolder to call it's recyclerView's smoothScrollToPosition(position)
android - ConcatAdapter 导致 getItemViewType() 返回错误值?
我有一个 RecyclerView 适配器,它负责处理我多年来一直使用的几种视图类型。最近,我发现了ConcatAdapter
,但我似乎遇到了一个问题,它似乎返回了错误的值getItemViewType()
。
我有一个用例,我想在其中显示标题并在其下方显示项目列表。我已经为标题创建了一个新的适配器类,但列表项将继续使用我的旧适配器(它还负责其他几种视图类型)。
所以我连接了两个适配器:
这工作正常,但是当我打开活动时,它立即崩溃并给出错误:
java.lang.ClassCastException:com.myapp.android.adapter.PostAdapter$PostViewHolder 无法转换为 com.myapp.android.adapter.PostAdapter$FooterViewHolder
这没有任何意义,因为我什至从未在回收站视图中添加页脚。
我的getItemViewType()
方法PostAdapter
看起来像这样:
我onBindViewHolder()
看起来像这样:
但无论出于何种原因,当我运行调试器时,它会上线FooterViewHolder vh1 = (FooterViewHolder) holder;
,即使我从未将页脚作为PostAdapter
s 数据的一部分。
那么它为什么会落在这上面呢?为什么 ConcatAdapter 会在处理多种视图类型的适配器中导致这种奇怪的行为?
android - 如何在同一个 ConcatAdapter 中使用具有多种视图类型的不同适配器?
我有一个ConcatAdapter
使用一个(通过调用和一个 normalPagingDataAdapter
由它自己包装):ConcatAdapter
withLoadStateFooter
ListAdapter
thenewChatMessageAdapter
和 thechatMessageHistoryAdapter
都具有多种视图类型,但两个适配器具有完全相同的视图类型:
itemViewType
当我启动我的应用程序时,所有视图都是空的,因为onBindViewHolder
. 如果我删除withLoadStateFooter
(将第二个 ConcatAdapter 变成我自己的PagingDataAdapter
)并添加它,它可能会起作用ConcatAdapter.Config.Builder().setIsolateViewTypes(false).build()
,可能是因为两个适配器具有完全相同的viewTypes
. 但是,一旦我添加withLoadStateFooter
它也停止工作,我又回到了空视图持有者。
所以简而言之,我的问题是:如何viewTypes
在我的适配器中使用不同的组合在 a 中ConcatAdapter
?
android - 在 RecyclerView 适配器中设置 LayoutManager 类型
我正在使用 aConcatAdapter
为我的RecyclerView
. 我正在使用两个RecyclerAdapters
,一个不需要LayoutManager
,一个需要一个GridLayoutManager
。如何正确设置类LayoutManager
内RecyclerAdapter
?我试过这样做,它不会抛出任何错误,但数据不显示。
没有语法错误,但我不确定我做错了什么。(当我在没有 的情况下对其进行测试时,Grid Recycler 工作正常ConcatAdapter
)。
这是我关注的 Medium 帖子中的 Kotlin 语法,所以我不确定等效的 Java 语法是什么。
android - ConcatAdapter 中的多个 LayoutManager
我想像这样实现一个 ConcatAdapter :
此页面的 recyclerView 包含以下元素:
- 标题
- 水平recyclerView(带分页)
- 标题
- 垂直recyclerView(无分页)
- 标题
- 水平recyclerView(带分页)
但问题是我只能将一个 LayoutManager 设置为我所知道的包含 ConcatAdapter 的 recyclerView。
如何为每个适配器设置不同的布局管理器?或者任何其他使用 CocantAdapter 实现此页面的解决方案?
(为什么是 ConcatAdapter?因为它解决了 nestedRecyclerView 的性能问题,即使我知道 recyclerViewPool 也是如此)
android - ConcatAdapter 内部的 Paging3 Library 的 PagingDataAdapter 加载所有页面而不滚动
我有 PagingDataAdapter,它包含在 ConcatAdapter 内的 GridAdapter 中。当我收集这样的数据时:
分页库开始按顺序加载所有页面,无需任何滚动。
postsAdapter 是一个带有 GridLayoutManager 的适配器,它是 PagingDataAdapter 的一个包装
viewModel 中的 setPostState 函数:
GridAdapter 中的 notifyItems 函数:
我怀疑 concat 适配器为我的 GridAdapter 提供了无限的高度,它开始加载所有内容,就好像我将 recyclerView 放在 nestedScrollView 中一样
android - 在 ConcatAdapter Android 中设置不同适配器之间的边距/填充
是否可以在ConcatAdapter的不同适配器之间设置空格(边距/填充)?我只有一个简单的代码示例,如下所示,但根据设计,我必须在不同适配器之间准确添加边距(不是一个适配器中的支架项目)。实现这一目标的最佳方法是什么?
android - 恢复 ConcatAdapter 中嵌套 recyclerview 的滚动状态
我正在使用新的ConcatAdapter和 Android 导航组件来创建一个复杂的 recyclerView,其中包含嵌套的水平滚动列表。我正在尝试恢复这些嵌套列表在旋转、导航等方面的状态。我已经阅读了关于该主题的这篇文章,但我正在努力解决如何在这种情况下恢复状态。
当adapter.stateRestorationPolicy = PREVENT_WHEN_EMPTY
我将它应用于包含嵌套回收器视图的适配器时,上面的文章中的内容不起作用。我在收到数据时尝试更新嵌套适配器,并尝试在数据接收时将它们添加到 concat 适配器,但没有成功。
我的片段
也试过这个:
我还尝试延迟将适配器绑定到外部 recyclerview:
我的嵌套 Recyclerview 适配器
任何帮助表示赞赏。
android - 是否可以将多个 Recyclerview 拼接到一个 Recyclerview 中?
我的布局有 3 个 Recyclerview。第一个和第二个是Vertical
,第三个是Horizontal
。因为我需要显示3个Recyclerview,所以我必须使用NestedScrollView
它们来包装它们。NestedScrollView + Recyclerview
是一件坏事,即使没有多少数据。喜欢:
我想做的是将3个Recyclerviews合并为一个Recyclerview.Like:
我尝试使用ConcatAdapter
,但它似乎并不满足我。因为:
是的,ConcatAdapter 不符合我的要求,因为每个 Recyclerview 都有不同的外包装。
使用 ConcatAdapter 应该怎么做?