NineOldAndroids,旋转或移动后不能点击查看(NineOldAndroids, not

2019-08-02 04:43发布

我用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();

这是我做错了图书馆或什么错误? 如果这个库不支持“蜂窝动画API”的所有功能,然后在我的项目,这将是无用的。

报价上的Android开发者博客“在蜂巢动画” : 由于目标对象的系统实际上是改变性质,对象本身的改变,不只是它们的外观。 所以您移动按钮实际上是感动,不只是画在不同的地方。 你甚至可以双击它,在它的动画位置。 来吧,点击它; 我赌你。

Answer 1:

现在我找到了答案: 如何做互动式动画(翻译)与Android

它说,nineoldandroids得到了同样的限制,本地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);
  }
});


文章来源: NineOldAndroids, not clickable view after rotation or move