【发布时间】:2017-10-07 20:15:39
【问题描述】:
我有一个 RecyclerView 使用 LinearLayoutManager 和 HORIZONTAL 方向,嵌套在 FrameLayout 中使用 BottomSheet Behavior。
当尝试垂直拖过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 (问题可以通过 commit #f59a7031 重现)
只需展开第一个底页。
【问题讨论】:
标签: android android-recyclerview androiddesignsupport bottom-sheet