我具有使用RecyclerView
一個LinearLayoutManager
與HORIZONTAL
取向,嵌套在FrameLayout
內使用BottomSheet
Behavior
。RecyclerView(水平)嵌套在BottomSheet防止垂直滾動
當試圖在RecyclerView
上垂直拖動時,BottomSheet
不響應拖動事件。推測這是因爲水平方向的垂直滾動被禁用了LayoutManager
。
我試過重寫LinearLayoutManager.canScrollVertically()
並且返回true。這種工程..如果您以非常小心的方式垂直拖動,BottomSheet
將作出迴應。只要涉及到任何水平移動,BottomSheet
將停止響應垂直拖動事件。
我不確定覆蓋canScrollVertically()
是否是正確的方法 - 從用戶體驗的角度來看,它肯定不對。
我也注意到,如果我用一個ViewPager
,而不是和水平定向LayoutManager
一個RecyclerView
,該BottomSheet
響應垂直的掠過事件所需。
是否存在的LayoutManager
一些其他的方法,RecyclerView
,BottomSheet Behavior
,要不乾脆東西,可以幫助傳播到BottomSheet Behavior
垂直滾動的事件?
有這裏的問題的一個例子:
https://github.com/timusus/bottomsheet-test
只要擴大與第一底片(問題可以與提交#f59a7031被再現)。
我懷疑'FRAMELAYOUT'阻止滾動事件傳播到'CoordinatorLayout'。我認爲在某個時候我接近了這個解決方案,但是在視口問題上遇到了麻煩。非常感謝。 –