滚动到嵌套recyclerview android kotlin中的位置
Posted
技术标签:
【中文标题】滚动到嵌套recyclerview android kotlin中的位置【英文标题】:Scroll to position in nested recyelerview android kotlin 【发布时间】:2021-12-05 15:31:29 【问题描述】:嘿,我正在使用反向 Reyclerview。我还在项目中嵌套了 Recyclerview。我想滚动到位置。首先,我将解释我的清单。
ABC
data class ABC(
val key: Int,
val value: MutableList<XYZ?>
)
XYZ
data class XYZ(
val text: Boolean? = null,
val id: String? = null
)
列表看起来像这样
ABC(0, listof( XYZ(0,"abc") ))
ABC(1, listof( XYZ(0,"abc"), XYZ(1,"qwe"), XYZ(2,"tyu") ))
ABC(2, listof( XYZ(0,"abc") ))
ABC(3, listof( XYZ(0,"abc"), XYZ(1,"qwe") ))
...... more like this
我使用 stackFromEnd 和 reverseLayout 来反转布局
binding.reycelerview.apply
this.adapter = adapter
layoutManager = LinearLayoutManager(this.context).apply
stackFromEnd = false
reverseLayout = true
我添加了图片看起来我的回收站视图
例如
场景1如果我想使用
reycelerview.smoothToScroll(4)
实际输出
我想在屏幕顶部显示索引 4 元素,而不是如上图所示。我正在添加预期的输出图像。
预期输出
场景 2
我想滚动到屏幕顶部的嵌套 recyerlview。我不知道该怎么做。假设我有价值去 4 索引第 2 项。
ABC(4, listof( XYZ(0,"abc"), XYZ(1,"qwe"), XYZ(2,"tyu") ))
预期输出
提前致谢。
【问题讨论】:
【参考方案1】:您可以在 RecyclerView
的项目被回收时保存 scrollX
位置,然后在再次绑定该项目时滚动该项目:
int[] scrollXState = new int[20]; // assuming there are 20 carousel items
@Override
public void onBindViewHolder(MyViewHolder holder, int position)
// setup recycler here, then post scrollX after recycler has been laid out
holder.nestedRecyclerView.post(() ->
holder.nestedRecyclerView.setScrollX(scrollXState[holder.getAdapterPosition()]));
@Override
public void onViewRecycled(MyViewHolder holder)
scrollXState[holder.getAdapterPosition()] = holder.nestedRecyclerView.getScrollX();
super.onViewRecycled(holder);
class MyViewHolder extends RecyclerView.ViewHolder
RecyclerView nestedRecyclerView;
public MyViewHolder(View itemView)
super(itemView);
您唯一需要注意的是,您不希望父适配器在方向更改后被销毁和创建,使其在方向更改后仍然存在。否则将int[]
保存到Bundle
,然后从onRestoreInstanceState()
取回。
【讨论】:
以上是关于滚动到嵌套recyclerview android kotlin中的位置的主要内容,如果未能解决你的问题,请参考以下文章
Android 嵌套滚动NestedScrollView+TabLayout+ViewPager+Fragment+RecyclerView 实现京东美团首页效果Tab页滚动到顶部时自动吸附
Android 嵌套滚动NestedScrollView+TabLayout+ViewPager+Fragment+RecyclerView 实现京东美团首页效果Tab页滚动到顶部时自动吸附
Android 嵌套滚动NestedScrollView+TabLayout+ViewPager+Fragment+RecyclerView 实现京东美团首页效果Tab页滚动到顶部时自动吸附
ViewPager2嵌套RecyclerView滑动冲突解决办法