NineOldAndroids,旋转或移动后无法点击的视图

时间:2012-11-01 08:58:42

标签: android animation

我使用NineOldAndroids 2.4.0来动画对象 主要用于控制的运动和转换。 在Android 4.0及更高版本上一切正常,但在之前的版本(2.1,2.3)之后,动画元素没有得到焦点而且无法点击。 示例代码:

View v = findViewById(R.id.button1);
v.setOnClickListener(new OnClickListener() {

     @Override
     public void onClick(View v) {
        Toast.makeText(MainActivity.this, "Click!", Toast.LENGTH_SHORT).show();
     }
});
ObjectAnimator moveDown = ObjectAnimator.ofFloat(v, "translationY", 100f);
moveDown.setDuration(5000);
moveDown.start();

这是图书馆中的错误或我做错了什么?如果这 库不支持" Honeycomb animation API"的所有功能,然后在我的项目中,它将毫无用处。

引用"Animation in Honeycomb"的Android开发者博客: 由于系统实际上正在改变目标对象的属性,因此对象本身会发生变化,而不仅仅是它们的外观。因此,您移动的按钮实际上是移动的,而不仅仅是在不同的地方绘制。您甚至可以在其动画位置单击它。继续点击它;我敢。

1 个答案:

答案 0 :(得分:7)

现在我找到了答案: How to do interactive animation (translation) with Android

它表示九个机器人的限制与原生SDK相同。

所以我的解决方案:

myAnim.setListener(new AnimatorListenerAdapter() {
  @Override
  public void onAnimationEnd ( Animator nullPointer ) {
    RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) child.getLayoutParams();
    params.bottomMargin += toYDelta;
    params.leftMargin += toXDelta;
    child.setLayoutParams(params);
  }
});
相关问题