我有一个简单的cardview topCard,想要将它从布局的中心转换到右侧并返回到初始位置。 使用object animator写了一些代码:
<div class="news">
<script type="text/javascript">
//some codes
</script>
needed content
<div class="seperator">
unneeded content
</div>
</div>
因此,我的视图正确转换为右侧,第二个动画不会移动到起始位置而是转移到 ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(topCard, "translationX", topCard.getWidth() + 150);
objectAnimator.setDuration(1500);
objectAnimator.start();
objectAnimator.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationEnd(Animator animation) {
ObjectAnimator translationX = ObjectAnimator.ofFloat(topCard, "translationX", - (topCard.getWidth() + 150));
translationX.setDuration(1500);
translationX.start();
。
如何使用2个序列动画将视图转换为右侧并返回相同位置? 这是错误的结果 https://i.imgur.com/8SShfHL.gifv
答案 0 :(得分:1)
您应该尝试将其放在@Override
public void onAnimationEnd(Animator animation) {
ObjectAnimator translationX = ObjectAnimator.ofFloat(topCard, "translationX",
topCard.getWidth() + 150, - (topCard.getWidth() + 150));
translationX.setDuration(1500);
translationX.start();
中:
topCard.getWidth() + 150
请注意,我添加了topCard
,使其成为e.target
的起始位置。根据{{3}}:
构造并返回一个在浮点值之间设置动画的ObjectAnimator。单个值意味着该值是动画的值。 两个值表示起始值和结束值。