1
我想一次滾動多個RecyclerView
如何實現該Exp-我有3 RecyclerView
在水平和當我滾動第一個RecyclerView
然後第二個和第三個也滾動怎麼做 ?我想一次滾動多個recyclerview如何實現那
我想一次滾動多個RecyclerView
如何實現該Exp-我有3 RecyclerView
在水平和當我滾動第一個RecyclerView
然後第二個和第三個也滾動怎麼做 ?我想一次滾動多個recyclerview如何實現那
答案很簡單,您必須從一個recycleview獲取滾動反饋並將其傳遞給其他recycleviews。但非常小心。
您需要保持refeler的哪個recyclerview開始給出滾動反饋,以便它不會進入連續循環。
所以創建一個全局變量
private int draggingView = -1;
添加scrollListener到所有recyclerviews
mRecyclerView1.addOnScrollListener(scrollListener);
mRecyclerView2.addOnScrollListener(scrollListener);
mRecyclerView3.addOnScrollListener(scrollListener);
您的滾動監聽器應該在這個結構。它應該決定哪個回收站正在提供滾動輸入以及哪個正在接收。
private RecyclerView.OnScrollListener scrollListener = new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if (mRecyclerView1 == recyclerView && newState == RecyclerView.SCROLL_STATE_DRAGGING) {
draggingView = 1;
} else if (mRecyclerView2 == recyclerView && newState == RecyclerView.SCROLL_STATE_DRAGGING) {
draggingView = 2;
} else if (mRecyclerView3 == recyclerView && newState == RecyclerView.SCROLL_STATE_DRAGGING) {
draggingView = 3;
}
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if (draggingView == 1 && recyclerView == mRecyclerView1) {
mRecyclerView2.scrollBy(dx, dy);
} else if (draggingView == 2 && recyclerView == mRecyclerView2) {
mRecyclerView1.scrollBy(dx, dy);
} else if (draggingView == 3 && recyclerView == mRecyclerView3) {
mRecyclerView1.scrollBy(dx, dy);
}
}
};
即是說,您的recyclerview已準備好滾動。如果您滾動一個回收視圖,它將滾動所有其他回收站視圖。
搬家不是問題,停下來是。如果用戶想要列表,同時如果他停止了其他列表,那麼該列表將只會停止,因此您還需要覆蓋該列表。我希望這個解釋和代碼能夠解決你的問題。
你應該發佈一些代碼 –
http://android-pratap.blogspot.in/2015/12/horizontal-recyclerview-in-vertical.html –
這是代碼,其中水平多個滾動視圖在那裏我想滾動所有在滾動一次 –