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顺序?
| 归档时间: |
|
| 查看次数: |
301 次 |
| 最近记录: |