我在CoordinatorLayout
中制作了一个水平RecyclerView
视图,以便RecyclerView
的父级appbar_scrolling_view_behavior
。一切都很完美,除非我们尝试在recyclerView
上垂直滚动。有没有办法我们可以在 Y 轴上滚动时垂直滚动,在 X 轴上水平滚动。
编辑
片段中有两个RecyclerView
,最终用于CoordinatorLayout
。现在第一个recyclerView
是水平的,第二个是垂直的。当我在第一个RecyclerView
水平滚动时,它可以完美地工作,当我在第二个RecyclerView
垂直滚动时,它工作得很好。现在的问题是当我尝试在第一个RecyclerView
父滚动应该可以工作时垂直滚动。谢谢。
是的,这很容易做到,检查每个人的滚动状态 回收视图.因此,例如,您有一个片段 - 5 个不同方向的回收视图。当滚动其中的某个时,您希望滚动所有内容。
1) 在每个回收视图上设置 onScrollChangeListener。
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener()
{
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy)
{
mRecycle1.smoothScrollBy(dx, dy); // Or use any other behaviour
mRecycle2.smoothScrollBy(dx, dy);
mRecycle3.smoothScrollBy(dx, dy);
......
}
}
编辑:
这适用于任何轴(X 和 Y)。另请查看有关回收视图滚动状态的链接。