Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:使用View.setY()查看过渡动画;行不通_Android_Animation_Android Appbarlayout - Fatal编程技术网

Android:使用View.setY()查看过渡动画;行不通

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更改视图的y位置(从开始到结束)来设置视图的动画。这是我的密码

    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()的速度

如有任何建议/解决办法,将不胜感激。谢谢