我试图检查某些特定项目是否在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
视图是否完全可见。
答案 0 :(得分:11)
您可以使用LayoutManager api制作一些逻辑,以在RecyclerView onScrolled方法中获得最后一个完全可见的项目位置:
((LinearLayoutManager) vYourRecycler.getLayoutManager()).findLastCompletelyVisibleItemPosition();
从文档中: 返回上一个完全可见视图的适配器位置。此位置不包括在最后一次布局传递后调度的适配器更改。
尝试使用它并通知RecyclerView适配器刷新。
注意:我不知道你为什么在onScrolled方法中使用findViewById,这项工作应该在RecyclerView ViewHolder中实现以获得性能