2011-09-29 50 views
1

在我的android应用中,我有一个“轨迹”的概念:用户可以导航的一系列对象。自然地,相同的视图用于显示所有对象,只是在下一个对象要显示时更新组件(文本,图像等)。Android视图动画:自己替换视图

现在,我想为对象之间的过渡设置动画:当用户从一个对象导航到下一个对象时,我想从右到左使用幻灯片动画(和其他方式)。问题是我没有两个视图来进行动画 - 只有一个视图。因此,当我尝试动画显示此视图时(下一个对象将被加载时),可见视图消失,我得到一个空白屏幕 - 然后视图从右侧滑入。

我想要的是让现有视图滑出并由新视图(相同视图但具有不同内容)替换为从右侧滑入。

我应该怎么办?

回答

0

解决方案结果非常简单:ViewPager。我提供了PageAdapter,它返回两个相似的视图(相同的布局,不同的内容),ViewPager负责处理其余的部分。如果我想禁用滑动页面更改,我所要做的就是扩展ViewPager,重写onInterseptTouchListener并返回false。

0

在我看来,像LayoutTransitionGestureDetector的组合。你甚至可能在里面也有ViewFlipper

LayoutTransition有一个您可能想要查看的动画功能。

+0

是的,我正在研究LayoutTransition,但无法弄清楚它将如何应用于这种情况。 –

0

我一直无法弄清楚如何在我的情况下使用LayoutTransition,所以我没有使用视图,而是用包含View的两个副本的ViewFlipper替换它。当我需要将视图替换为另一个视图时,我会跟踪当前显示哪个视图,然后更新另一个屏幕,然后使用标准的“从左向右滑动”和“从右向右滑动”动画showNext()。这比我想要的要复杂得多,并且使用了更多的内存,但是它完成了这项工作。