滚动 Recycler 视图向上时调用 onBindViewHolder。

4

在我的Recycler View中有一系列图片,当向下滚动Recycler View时,会调用onBindViewHolder方法。

我想在向上滚动Recycler View时再次调用onBindViewHolder方法,以便能够获取当前查看的图片位置。

如何在向上滚动时再次调用onBindViewHolder方法?


抱歉,这不是 StackOverflow 的工作方式。形如“我想做 X,请给我一些提示和/或示例代码”的问题被视为离题。请访问帮助中心并阅读提问的正确姿势,特别是阅读为什么“有人能帮我吗?”不是一个实际的问题? - Renats Stozkovs
1个回答

2

这可能不是确定当前查看的图像的最佳方法,但您可以向您的Recycler View添加滚动监听器,每当dy滚动为负时,您可以调用adapter.notifyDataSetChanged,以便再次调用onBindViewHolder。

   mFragmentListBinding.movieGrid.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
                if (dy < 0) {
                   mAdapter.notifyDataSetChanged();
                }
            }
        });

它能工作,但是找出当前查看的图像的最佳方法是什么? - Environer Inc
你的布局中同时可见多少个视图?因为布局管理器还提供了这两种方法:layoutManager.findLastVisibleItemPosition() 和 layoutManager.findFirstVisibleItemPosition()。 - Christoph Mayr
我的布局中同时显示了两个视图。 - Environer Inc
所以 layoutManager.findLastVisibleItemPosition() 和 layoutManager.findFirstVisibleItemPosition() 将会给你这两个可见的项目。 - Christoph Mayr
当这个答案解决了您的问题时,如果您能将我的答案标记为解决方案,我会非常高兴 :) - Christoph Mayr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接