我有一个垂直的回收者视图,在eatch项目中有一个水平回收者视图。
当我在dx中滚动100像素时,在所有可见的水平回收视图中,一切正常,但是当我向下滚动时,“新”水平回收视图显示在dx 0中,就像每次都没有滚动一样。
有没有办法将所有水平回收者滚动相同的距离? 也许保留dx并在视图被回收或重新创建时应用它?或者移动到位置0,然后滚动距离?
示例:
在垂直回收站视图中有5个可见项目
我水平滚动,在所有可见项目中滚动(100,0),向右滚动100像素,
然后滚动verticall回收器,新项目显示位置0的“新”回收站视图,
我需要所有的水平回收者与100 dx滚动,我会尝试放置图像
PS: gif,老方式没有回收和非常慢
https://giphy.com/gifs/3o6ZtqPlYl0j7wIi0U
在那个gif我可以水平滚动,然后verticall和每一行都是sincronised(没有回收者视图),在我的版本中,当我向下滚动时,fisrt项目总是红色(红色是第一项)
答案 0 :(得分:0)
您可以定义OnScroll Listene r实例,并为每个水平的RecyclerView add定义OnScrollListener实例。
每当滚动回收器视图时,通过观察者模式实现(侦听器)通知其他回收器视图,以便每个回收器视图调用其scrollBy方法