停止布局,以便在动画后重新排列

时间:2012-10-11 09:56:24

标签: android animation layout

我在我的应用中使用动画。我的动画是将一个小布局移动到离屏幕一半的位置,就像我想要的那样。

我的问题是,当我使用params.setMargins(500, 0, 0, 0); resetButton.setLayoutParams(params);时,布局会自行重新排列,并且其中的所有视图都会变得很小并且会被粉碎。

我希望布局保持原样,尽管它位于屏幕的外侧。这可能吗?

我将添加我的代码:

SetAnimationParameters(true);
        mainLayout.startAnimation(animationSet);
        animationSet.setAnimationListener(new AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {
            }

            @Override
            public void onAnimationRepeat(Animation animation) {
            }

            @Override
            public void onAnimationEnd(Animation animation) {
                mainLayout.clearAnimation();
                RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mainLayout
                        .getLayoutParams();
                params.setMargins(500, 0, 0, 0);

                mainLayout.setLayoutParams(params);
            }
        });

和那些我设置动画参数的地方:

private void SetAnimationParameters(boolean isRight) {
    if (isRight) {
        TAnimation = new TranslateAnimation(0, 500, 0, 0);
    } else {
        TAnimation = new TranslateAnimation(500, 0, 0, 0);
    }
    TAnimation.setDuration(250);
    animationSet = new AnimationSet(false);
    animationSet.setFillAfter(true);
    animationSet.addAnimation(TAnimation);
}

正如你在动画完成后看到的那样(onAnimationEnd),我正在将视图转换为动画结束的位置,因此它可以使用。但在那之后(这是我的问题)布局被重新排列,因此它的所有视图都不会通过缩小它们而不在屏幕之外,我不希望这样。我希望视图能够继续走出一半。

我能说清楚吗?

0 个答案:

没有答案