在removeView之后管理LayoutTransition的ViewGroup的z顺序

All*_*son 5 android android-animation android-layout

我正在使用LayoutTransition带有自定义ObjectAnimator对象的动画来添加和删除内部LinearLayout(本身在中HorizontalScrollView)的视图。新视图将添加到先前视图的右侧。唯一具有动画效果的属性是translationX

我希望一个新加入的人View从前一个人的下方滑出View(从左到右动画)。而且,我希望新删除的对象View在上一个对象的下方滑动View(从右到左动画)。

我覆盖了getChildDrawingOrder以返回相反的z顺序,如下所示:

@Override
protected int getChildDrawingOrder( int childCount, int i ) {
   return childCount - 1 - i;
}
Run Code Online (Sandbox Code Playgroud)

这对于添加视图时发生的动画非常有用。删除视图后,它不起作用。removeView()被称为getChildDrawingOrder(); 的ViewGroup(或者,在我的情况,LinearLayout)不再知道该新除去View通过它得到搞清楚Z顺序的时间。结果是被移除的View动画在其他视图之上。

bringToFront()并且bringChildToFront()似乎为我做什么。

我知道我可以简单地翻译View要删除的,然后致电removeView()。但这违反了使用LayoutTransitions的目的。

我还能尝试什么,以确保移除a View仍然保持我想要的z顺序?