1. 程式人生 > >CoordinatorLayout 巢狀Recyclerview在巢狀Recyclerview滑動出現衝突解決辦法

CoordinatorLayout 巢狀Recyclerview在巢狀Recyclerview滑動出現衝突解決辦法

RecyclerView巢狀RecycleView 
要做一個介面,CoordinatorLayout巢狀AppBarLayout和RecyclerView來實現摺疊滑動,我的RecycleView裡面佈局較多,計劃再嵌入RecyclerView來實現,當我用到RecyclerView新增GrideLayoutManager實現GrideView時,發現滑動就出現問題,摺疊失敗,參考官方demo,很容易使用CoordinatorLayout和CollapsingToolbarLayout實現。

解決方式:為最子層得RecyclerView增加一句setNestedScrollingEnabled(false)

CoordinatorLayout實現了NestedScrollingParent,縱向RecyclerView是CoordinatorLayout的子View,RecyclerView的滑動能通知到CoordinatorLayout,繼而由CoordinatorLayout協調讓CollapsingToolbarLayout發生摺疊。

上面出bug的原因也能理解了,橫向RecyclerView的父View是縱向RecyclerView,而RecyclerView只實現了NestedScrollingChild,無法像CoordinatorLayout一樣響應。所以要關閉橫向RecyclerView的巢狀滑動功能,讓橫向RecyclerView如同其他嵌入縱向RecyclerView的view一樣,觸發摺疊。