【问题标题】:Android ViewFlipper auto animation / looping breaks at last child viewAndroid ViewFlipper 自动动画/循环中断在最后一个子视图
【发布时间】:2015-08-10 15:01:47
【问题描述】:

我已经制作了一个 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 张幻灯片被动画退出之前动画进入,这使得动画突然变得不流畅。

有人有解决这个问题的方法吗?

谢谢

【问题讨论】:

    标签: android animation viewflipper


    【解决方案1】:

    最新的 Android 更新似乎解决了问题:

    Lollipop 5.1.1 Build# LMY48M

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-16
      相关资源
      最近更新 更多