情况如下:
我有一个LinearLayout
包含垂直 n CardView
。
我想通过在卡片上添加动画来自定义它的呈现方式。
当布局被渲染时(可能在onResume()中),我希望每张卡片从底部滑到卡片如果没有动画应该采取的位置,如上图所示:
黄色箭头代表LinearLayout
的paddingTop和紫色箭头代表CardView
' marginBottom。
我不知道如何实现这一点,因为我无法获得最终位置,这就是为什么我来这里问你是否有人已经这样做或类似的。
我尝试在添加/删除时使用LayoutTransition
with ObjectAnimator
added 到LinearLayout
那个动画孩子,但我必须在 的构造函数中传递一个视图(孩子,我现在不知道)ObjectAnimator
。
我也试过这个:
[...]
int deviceHeight = getResources().getDisplayMetrics().heightPixels;
[...]
@override
public onResume() {
super.onResume();
card.animate().y(position)
.withStartAction(new Runnable(){
@Override
public void run(){
card.setY(deviceHeight);
}
});
但我无法获得位置的值(我总是得到 0),或者如果我将其更改为.y(-deviceHeight)卡在他的位置呈现,然后在滑到顶部之前移动到底部,LinearLayout
但paddingTop是甚至没有考虑..
编辑:总而言之,我想做一些类似于设置android:animateLayoutChanges="true"并且您删除第一个孩子时发生的事情:其他孩子只是向上滑动以填充该位置仍然是空的(除了我想要在每个子动画之间添加一些延迟)