Android ViewFlipper自动动画/循环在最后一个子视图中中断

时间:2015-08-10 15:01:48

标签: android animation viewflipper

我制作了一个ViewFlipper来模拟幻灯片组件连续循环播放幻灯片。 我把它配置为:

mViewFlipper.setAnimateFirstView(true);
mViewFlipper.setAutoStart(true);

在最后一张幻灯片(或子视图)之前,一切正常。 此时第一张幻灯片突然出现而没有滑动!!!

我检查了ViewFlipper和ViewAnimation源代码,发现了以下内容:

   void showOnly(int childIndex, boolean animate) {
       final int count = getChildCount();
       for (int i = 0; i < count; i++) {
           final View child = getChildAt(i);
           if (i == childIndex) {
               if (animate && mInAnimation != null) {
                   child.startAnimation(mInAnimation);
               }
               child.setVisibility(View.VISIBLE);
               mFirstTime = false;
           } else {
               if (animate && mOutAnimation != null && child.getVisibility() == View.VISIBLE) {
                   child.startAnimation(mOutAnimation);
               } else if (child.getAnimation() == mInAnimation)
                   child.clearAnimation();
               child.setVisibility(View.GONE);
           }
       }
   }

正如您所看到的,此方法始终以动画输入的最低索引开始。

例如,如果我有5张幻灯片:

当幻灯片#4可见并且应该被幻灯片#0替换时,幻灯片#0在幻灯片#4被动画化之前被动画化,这使得动画突然变得不平滑。

有没有人解决这个问题呢?

由于

0 个答案:

没有答案