-2

当我使用属性动画时,它无法正常工作。以下是我的代码。单击视图执行切换动画,但没有达到预期结果。日志显示“onAnimationUpdate”的回调仅调用了两次并返回了最大值。

 @Override
 public void onClick(View v) {
     switch (v.getId()) {
        case R.id.product_item_top_rl: 
        startAnimation(v);
        break;
     }
 }


private void startAnimation(final View v) {
    int height = v.getHeight();
    ValueAnimator va = ValueAnimator.ofInt(0, height);
    va.setDuration(1000);
    va.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        public void onAnimationUpdate(ValueAnimator animation) {
            Log.d(TAG, "animation : " + animation.getAnimatedValue());
            v.getLayoutParams().height = (Integer) animation.getAnimatedValue();
            v.requestLayout();
        }
    });
    va.start();
}

这是日志。

D/ChooseProductFragment: animation : 150
D/ChooseProductFragment: animation : 150
4

1 回答 1

3

我终于解决了。问题是几天前我用 espresso 进行 UI 测试时,我刚刚关闭了测试设备上的动画。然后我打开了动画,它现在可以工作了。

于 2016-01-22T05:08:44.937 回答