我正在尝试编写一种自定义行为,以缩小当用户垂直滚动放置的CoordinatedLayout
时用作RecyclerView
中的回收站视图的可视标头(而不是标头行)的图像视图在它下面。这个想法是,当用户尝试向上滚动Recyclerview
时,“标题图像”会缩小并逐渐变淡,直到Recyclerview
替换它为止,从那时起,除非用户拉动,否则回收者视图将按正常滚动。 Recyclerview
向下移动,这样第一行就可见了,从那时起,图像开始扩大并失去透明度,因此再次可见。
我尝试使用自定义协调器布局行为中的onStartNestedScroll
,onNestedPreScroll
和onNestedScroll
来做到这一点。
该方法在一定程度上可行,但是当我拖动RecyclerView
时,显示会非常不平稳,并且我发现由于某种原因,RecyclerView意外调用了onNestedPreScroll
。
当我确定标题图像正在缩小并且我不希望RecyclerView
滚动时,我通过将其返回到{{1}来消耗onNestedPreScroll
调用中的所有运动在传递的数组中。我希望RecyclerView
不做任何进一步的处理,但是看起来在更改标题图像的RecyclerView
以调整其大小之后,LayoutParams
onNestedPreScroll再次带有负数RecyclerView calls
与先前的肯定dy
大致相同(尽管不完全相同)。这样会导致dy
上下跳动通常30-50像素,并且图像大小会抖动,并且自定义行为会对RecyclerView
调用产生反应。