目前,我有一个ViewAnimator
,用于将绿色图表放在顶部
this.chartViewAnimator = (ViewAnimator)chartContainer.findViewById(R.id.chart_view_animator);
this.chartViewAnimator.setAnimateFirstView(true);
Animation slideInLeft = AnimationUtils.loadAnimation(this.getActivity(), android.R.anim.slide_in_left);
Animation slideOutRight = AnimationUtils.loadAnimation(this.getActivity(), android.R.anim.slide_out_right);
int configMediumAnimTime = 2000;
slideInLeft.setDuration(configMediumAnimTime);
slideOutRight.setDuration(configMediumAnimTime);
this.chartViewAnimator.setInAnimation(slideInLeft);
this.chartViewAnimator.setOutAnimation(slideOutRight);
现在,我想更改顶部图表的持续时间。我期待着
- 一个动画滑出旧的绿色图表,并永远丢弃它(不要保留在内存中)。
- 在新的红色图表中滑动的动画。
我使用以下代码。
// Discard old chart. I'm expecting view animator will perform slide out animation.
chartViewAnimator.removeAllViews();
// I expect view animator will perform slide in animation.
chartViewAnimator.addView(graphicalView, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
但是,根本没有任何动画。
首先,我希望通过 丢弃旧视图时removeAllViews
,ViewAnimator
将为我执行滑出动画。当添加新的红色图表时,我还期望ViewAnimator
在动画中执行幻灯片。
好像我错了。有没有我错过的步骤?