Android:使用View.setY()查看过渡动画;行不通
我试图通过使用valueAnimator更改视图的y位置(从开始到结束)来设置视图的动画。这是我的密码Android:使用View.setY()查看过渡动画;行不通,android,animation,android-appbarlayout,Android,Animation,Android Appbarlayout,我试图通过使用valueAnimator更改视图的y位置(从开始到结束)来设置视图的动画。这是我的密码 ValueAnimator valueAnimator = ValueAnimator.ofFloat(startY, endY); valueAnimator.setDuration(150); valueAnimator.setInterpolator(new DecelerateInterpolator()); valueAnimator.addUpda
ValueAnimator valueAnimator = ValueAnimator.ofFloat(startY, endY);
valueAnimator.setDuration(150);
valueAnimator.setInterpolator(new DecelerateInterpolator());
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
float newY = (Float) animation.getAnimatedValue();
view.setY(newY);
// Do some other related ui changes for each y (Important)
}
});
valueAnimator.start();
这段代码适用于一些较新的android版本。但是,它不适用于许多其他android版本。因此,视图的y位置永远不会更新。视图将继续保持不变
我知道,我可以使用TransitionAnimation类,并且它运行良好(已经尝试过)。但是,TransitionAnimation类并不像ValueAnimator类中的onAnimationUpdate()那样为每个新的y值提供侦听器。因此,在更新y时,我无法进行其他相关的ui更改。所以,我必须坚持使用ValueAnimator类
更多信息:我试图设置动画的视图是AppBarLayout和AppBarLayout下面的片段。我不使用appBarLayout.setExpanded()的原因是动画太慢,而且Google还没有发布新的更新来控制setExpanded()的速度
如有任何建议/解决办法,将不胜感激。谢谢