动画结束后无法激活 View Touch 事件

Posted

技术标签:

【中文标题】动画结束后无法激活 View Touch 事件【英文标题】:Cannot activate View Touch Event After Animation end 【发布时间】:2010-05-20 08:03:37 【问题描述】:

我在 Button 上添加动画,使用 .SetFillAfter(true) 将最后一个视图保留在屏幕上。但是我发现通过触摸屏幕上的Button图标已经无法调用触摸事件功能了(但可以通过触摸原始位置来调用)。

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_
    android:layout_
    >
<Button
    android:id ="@+id/button"  
    android:layout_ 
    android:layout_ 
    android:text="Move"
    />
</AbsoluteLayout>

  anim = AnimationUtils.loadAnimation(this, R.anim.move);
  anim.setInterpolator(this, android.R.anim.accelerate_decelerate_interpolator);

【问题讨论】:

【参考方案1】:

也在寻找解决这个问题的方法。

@Ruivo - 查看 Animation 的源代码,我发现了这个:

/** 
 * Indicates whether or not this animation will affect the transformation
 * matrix. For instance, a fade animation will not affect the matrix whereas
 * a scale animation will.</p>
 *
 * @return true if this animation will change the transformation matrix
 */
public boolean willChangeTransformationMatrix() 
    // assume we will change the matrix
    return true;


/**
 * <p>Indicates whether or not this animation will affect the bounds of the
 * animated view. For instance, a fade animation will not affect the bounds
 * whereas a 200% scale animation will.</p>
 *
 * @return true if this animation will change the view's bounds
 */
public boolean willChangeBounds() 
    // assume we will change the bounds
    return true;

更新:我为这个问题提供了自己的答案。看到这个问题Android ScaleAnimation doesn't scale clickable area

【讨论】:

以上是关于动画结束后无法激活 View Touch 事件的主要内容,如果未能解决你的问题,请参考以下文章

transitionend事件 监听 fadeIn fadeOut 两个方法无效(动画结束时无法执行transitionend里面的代码)

颤振检测键盘隐藏动画的结束

popupwindow设置了消失动画,消失动画结束后有出现了。。。要怎么解决。。

Android 在动画结束回调onAnimationEnd()中remove view的崩溃解决方法及源码分析

Lottie动画系列:LottieAnimationView点击事件和结束动画

360杀毒扫描全盘不到几秒就结束了,无法扫描杀毒,疑似中毒