检查物料在RecyclerView中是否完全可见

时间:2015-09-30 09:10:00

标签: android-recyclerview android-scroll

我试图检查某些特定项目是否在RecyclerView中可见;但我无法实现这一点。请帮我确定我的商品是否在RecyclerView完全可见。

mrecylerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
    @Override
    public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
        super.onScrolled(recyclerView, dx, dy);
        LinearLayout ll = (LinearLayout) recyclerView.findChildViewUnder(dx, dy);
        if (ll != null) {
            TextureVideoView tvv = (TextureVideoView) ll.findViewById(R.id.cropTextureView);
        }
    }
});

我想检查tvv视图中mrecyclerView视图是否完全可见。

1 个答案:

答案 0 :(得分:11)

您可以使用LayoutManager api制作一些逻辑,以在RecyclerView onScrolled方法中获得最后一个完全可见的项目位置:

((LinearLayoutManager) vYourRecycler.getLayoutManager()).findLastCompletelyVisibleItemPosition();

从文档中: 返回上一个完全可见视图的适配器位置。此位置不包括在最后一次布局传递后调度的适配器更改。

尝试使用它并通知RecyclerView适配器刷新。

注意:我不知道你为什么在onScrolled方法中使用findViewById,这项工作应该在RecyclerView ViewHolder中实现以获得性能

相关问题