我試圖實現一個佈局,其中有旋轉木馬頂部和下面是一個網格佈局的圖像。該活動有一個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的最後一個項目的位置。
任何幫助或建議將不勝感激。