首页 > 解决方案 > 如何从适配器外部获取我的 recyclerview 中显示的项目的位置?

问题描述

我有RecyclerView一个固定数量的项目。我已经实现了一个SnapHelper以确保一次只能CardView看到一个项目。如何CardView从适配器类外部获取位置?该位置将需要返回onCreateonSwipe下一个CardView项目。我尝试setTag()onBindViewHolder课堂上和getTag()活动中使用 a,但这似乎不起作用。

当前代码:

LinearLayoutManager linearLayoutManagerOne = new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false);
recyclerHomeFavouriteTable.setLayoutManager(linearLayoutManagerOne);
SnapHelper snapHelper = new PagerSnapHelper();
snapHelper.attachToRecyclerView(recyclerHomeFavouriteTable);

标签: androidandroid-recyclerview

解决方案


获取回收站视图项目位置。有两种方法

getLayoutPostion()

根据最新的布局传递返回 ViewHolder 的位置。这个位置主要被 RecyclerView 组件用来保持一致,而 RecyclerView 懒惰地处理适配器更新。

getAdapterPosition()

返回此 ViewHolder 表示的项目的适配器位置

它们都属于ViewHolder,所以我认为,您可以为物品持有人设置标签。然后获取ViewHolder根据标签,然后用于ViewHodler获取位置。


推荐阅读