是否有任何想法或如何实现此动画如下图?因为当我按下取消按钮时我尝试在Linearlayout B上给出动画,线性布局B将从左向右滑出但是一旦LinearLayout B完全消失,LinearLayout C直接步进到LinearLayout A的下方,而不是慢慢滑到下面LinearLayout的答案A.请帮忙......
答案 0 :(得分:2)
将android:animateLayoutChanges="true"
设置为线性布局,您将自动实现此目的。
答案 1 :(得分:0)
首先将ViewTreeObserver.OnPreDraw侦听器添加到视图C:
int bHeight = viewB.getHeight();
viewC.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
public boolean onPreDraw() {
viewC.startAnimation(new TranslateAnimation(0, 0, bHeight, 0));
viewC.getViewTreeObserver().removeOnPreDrawListener(this);
return false;
}
});
然后将B的可见性设置为消失。
viewB.setVisibility(View.GONE);
这样做会隐藏视图B,导致视图C向上移动。然而,在C被绘制到它的新位置之前,我们将它从以前的位置动画到现在的位置。