我有一个按钮,我想制作一个向下的动画。我做到了,但是功能留在了以前的位置(就像按钮移动但是如果我点击它,它不起作用,但是如果我点击它以前的位置它会起作用)
动画 logbtn = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.logbtnanim);
button.startAnimation(logbtn);
动画代码是这样的。
附言Parent 是约束布局。
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true">
<translate
android:fromYDelta="0"
android:toYDelta="100"
android:duration="1000"/>
</set>
最佳答案
首先,如果您只有一个动画,则不需要 AnimatorSet 标签。如果您想一起播放多个动画,则使用此选项。
其次你正在使用 TranslateAnimation它不会为 Buttons 属性设置动画,它只会移动屏幕上的像素,所以在动画之后,Android 仍然认为 View 位于旧位置,这就是它仍然可以点击的原因。
我建议使用 ViewPropertyAnimator 在 Java 代码中执行此操作像这样的东西:
button.animate().translationY(...f).duration(1000);
或ObjectAnimator这更灵活一些,因为您也可以在 xml 中完成。
关于java - 如何将 View 从 Y 位置移动到另一个 Y,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65170827/