位置? 如何将视图从一个 Y 位置移动到另一个 Y 位置?

3
我有一个按钮,希望它能够向下移动进行动画效果。我已经实现了这个功能,但是按钮的功能却留在了之前的位置(例如,按钮虽然移动了,但如果我点击它,它不会起作用,但如果我点击它之前的位置,它就会起作用)。
以下是动画代码,其中“Parent”是约束布局:

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>

为什么不使用View类的animate方法?你是在使用Android Studio吗? - MehranB
你好!这里有一篇很棒的文章,介绍了简单动画。请查看链接:https://medium.com/@yasmineayad/simple-animation-in-android-acfd26e46998。 - Alex
@MehranBehbahani 你能详细解释一下吗? - A. Khachatryan
被接受的答案正是我所想表达的。 - MehranB
1个回答

3
首先,如果您只有一个动画,就不需要使用AnimatorSet标签。这仅用于同时播放多个动画。
其次,您正在使用TranslateAnimation,它不会对Buttons属性进行动画处理,它只是移动屏幕上的像素,因此在动画之后,Android仍然认为视图处于旧位置,这就是为什么该位置仍然可点击的原因。
我建议使用Java代码来使用ViewPropertyAnimator,类似于:
button.animate().translationY(...f).duration(1000);

或者使用ObjectAnimator,这更加灵活,因为你也可以在xml中完成它。

非常感谢,这正是我所需要的。 - A. Khachatryan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接