我有一个按钮,我想做一个动画下去。我做到了,但功能保留在前一个位置(就像按钮移动,但如果我单击它,它不工作,但如果我单击它的前一个位置,它将工作)
Animation logbtn = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.logbtnanim);
button.startAnimation(logbtn);
动画代码是这样。
父级是约束布局。
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true">
<translate
android:fromYDelta="0"
android:toYDelta="100"
android:duration="1000"/>
</set>
发布于 2020-12-06 18:28:11
首先,如果只有一个动画,则不需要AnimatorSet标记。如果您想要同时播放多个动画,则使用此方法。
其次,您使用的是TranslateAnimation,它没有动画按钮属性,它只移动屏幕上的像素,所以在动画之后,安卓仍然认为视图处于旧位置,这就是为什么它仍然可以点击的原因。
我建议在Java代码中使用ViewPropertyAnimator这样做,如下所示:
button.animate().translationY(...f).duration(1000);
或者ObjectAnimator,它更灵活一些,因为您也可以用xml来完成它。
https://stackoverflow.com/questions/65170827
复制相似问题