动画结束后无法激活视图触摸事件。

3

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

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

  anim = AnimationUtils.loadAnimation(this, R.anim.move);
  anim.setInterpolator(this, android.R.anim.accelerate_decelerate_interpolator);
1个回答

0

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

@Ruivo - 在查看动画源代码时,我发现了这个:

/** 
 * 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


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