【问题标题】:How to get item position in recycler adapter by item's parameter?如何通过项目的参数获取回收器适配器中的项目位置?
【发布时间】:2021-12-28 10:46:29
【问题描述】:

我有两个片段。在Fragment A 中,我选择具有唯一 ID 的项目。在Fragment B 我有由这些项目组成的回收器适配器。我想从 Fragment A 中取出物品,然后打开 Fragment B 并使用回收器适配器设置为所选物品的位置。我发现为了在特定位置打开回收器适配器,我必须使用类似 rv.getLayoutManager().scrollToPosition(positionInTheAdapter). 的东西 问题是:我可以通过项目的 id 获得那个位置吗? 或者也许有更好的方法我正在努力实现的目标。

谢谢

【问题讨论】:

  • recyclerviews 由适配器管理,您是负责将数据提供给适配器的人,它们只是根据数据显示视图,在您向上或向下滚动时替换视图,所以不确定是否你真的需要向回收商询问这个,只需搜索适配器的数据以找到你想要的项目的位置。除此之外,我真的不认为你正在做的事情有问题。
  • @a_local_nobody ,我将如何搜索适配器的数据以找到项目的位置?
  • 只需使用 indexOf 或遍历你的数组列表来找到你想要的项目

标签: android android-fragments android-recyclerview listadapter


【解决方案1】:

您必须传递片段 B 中的项目列表。现在,当您选择第一个片段 A 中的任何项目时,您需要做的就是循环遍历传递给适配器的所有项目列表并匹配项目的位置id 匹配该位置然后可以传递给rv.getLayoutManager().scrollToPosition(positionInTheAdapter)

有关如何在片段之间传递数据的更多信息,您可以查看this 文章。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-28
    • 2021-07-05
    相关资源
    最近更新 更多