【发布时间】: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