java - 如何将 View 从 Y 位置移动到另一个 Y

标签 java android animation

我有一个按钮,我想制作一个向下的动画。我做到了,但是功能留在了以前的位置(就像按钮移动但是如果我点击它,它不起作用,但是如果我点击它以前的位置它会起作用)

动画 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/

相关文章:

java - Gradle 增量构建未在目标路径中生成文件夹结构

java - 与线程一起使用的音乐库

java - 如何在 webapp 中使用 java 创建文件?

javascript - 使用 context.drawImage() 时出现奇怪的 700 毫秒延迟;

ios - UIButton 闪烁动画

java - TOTP 二维码适用于 Android 但不适用于 iOS 设备?

android - 在 SD 卡中创建视频文件的缩略图

java - 为什么有些东西不能在上面运行?

android - 使用幻灯片过渡时,GotoVisibleTab 在 Android 上崩溃

当再次调用该函数时,javascript 会跳出 while 循环