如何清除动画的后遗症

时间:2013-10-07 11:57:19

标签: android animation

我有2个视图通过同时滑入和滑出屏幕进行动画制作

这是它的代码:How to animate a slide in notification view that pushes the content view down

但是,当动画滑入时,我必须清除动画,以便点击事件正常工作,否则它们也会被翻译(这不是我想要的)

我需要在侦听器中放入onAnimationEnd以清除动画并让视图保持其动画后的视觉方式

这是我目前的代码:

greenViewSlideIn(1500, 0, new AnimatorListener() {

                @Override
                public void onAnimationStart(Animator animation) {
                    greenView.setVisibility(View.VISIBLE);
                }

                @Override
                public void onAnimationRepeat(Animator animation) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void onAnimationEnd(Animator animation) {

                    FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(blueView.getWidth(), blueView.getHeight());
                    layoutParams.setMargins(blueView.getLeft(), blueView.getTop() - greenViewHeight, blueView.getRight(), blueView.getBottom());
                    blueView.setLayoutParams(layoutParams);
                    greenView.clearAnimation();
//                  blueView.clearAnimation();

                }

                @Override
                public void onAnimationCancel(Animator animation) {
                    // TODO Auto-generated method stub

                }
            });

1 个答案:

答案 0 :(得分:0)

你可以做两件事:

  1. 确保动画上的setFillAfter标记设置为false。然后就不需要AnimationListener

  2. 动画结束后,请致电view.setAnimation(null);

  3. 希望这会有所帮助:)