动画(滚动)一个ViewGroup阻止来自动画的无关视图,直到完成

查看层次:

[0/6] View (first view in layout) ... [2/6] RecyclerView ... RecyclerView's children views ... [6/6] View (point of interest, on top) 

目标:

RecyclerView足够高时,我需要滑入(使用fast-out-slow-in内插器)最后一个View(恰好是自定义工具栏),当RecyclerView足够低时,将其滑出,当RecyclerView足够低时。 效果与https://material.io/上的滑动标题标题相似。

问题:

工具栏的动画 – (视图最初隐藏)显示:

 title_bar.animate() .setInterpolator(FastOutSlowInInterpolator()) .setDuration(500) .setStartDelay(0) .translationY(0f) .start() 

并隐藏它:

 title_bar.animate() .setInterpolator(FastOutSlowInInterpolator()) .setDuration(500) .setStartDelay(0) .translationY(someValue) .start() 

问题是动画不会运行,直到RecyclerView的滚动停止(键入)。

我怀疑动画在FIFO中以某种方式排队,直到滚动停止。 我不明白为什么可能是这样的,因为两个视图是完全独立的, RecyclerView在我的工具栏下面。

扭曲

这工作得很好:

 title_bar.animate() .setInterpolator(FastOutSlowInInterpolator()) .setDuration(0) // <-- duration is zero .setStartDelay(0) .translationY(someValue) .start() 

即动画立即被激发(也许它相当于title_bar.translationY = someValue ?)

那么,究竟发生了什么?