我试图实现一个布局,其中有旋转木马顶部和下面是一个网格布局的图像。该活动有一个RecyclerView,该RecyclerView(MainRV)本身的项目是另一个RecyclerView(ChildRV)。我让MainRV的第一个孩子使用带Horizontal Scroll的LinearlayoutManager。第二个孩子正在使用GridLayoutManager。 ChildRV呈现实际项目。在嵌套RecyclerView的孩子的onScrollListener没有得到触发
问题是,我想实施MainRV(网格视图)的第二个孩子的延迟加载。但是,当我尝试将onScrollListener添加到子项时,它不会被触发。
我曾尝试:
我试着设置setNestedScrollingEnabled两个MainRV和ChildRV。它仍然没有触发onScrollListener。
我在MainRV上实现了onScrollListener,并试图在滚动状态变为空闲状态后得到第二个孩子。但是,当我调用gridLayoutManager上的findLastVisibleItemPosition()时,即使我位于网格视图的顶部,它也会给出最后一项的位置。下面是onScrollListener
mRecyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if(newState == RecyclerView.SCROLL_STATE_IDLE) {
RecyclerView recyclerView1 = (RecyclerView) recyclerView.getChildAt(1);
GridLayoutManager gridLayoutManager = (GridLayoutManager) recyclerView1.getLayoutManager();
Log.e("Scrolled activity pos", "" + gridLayoutManager.findLastVisibleItemPosition());
}
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
}
});
上述代码的输出的片断给人这是在我的案件49的最后一个项目的位置。
任何帮助或建议将不胜感激。