Android视图动画:自行替换视图

时间:2011-09-29 09:41:08

标签: android animation

在我的Android应用程序中,我有一个“trail”的概念:用户可以导航的一系列对象。当然,相同的视图用于显示所有对象,只需在显示下一个对象时更新组件(文本,图像等)。

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

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

我应该怎么做?

3 个答案:

答案 0 :(得分:0)

我认为是LayoutTransitionGestureDetector的组合。你甚至可能在那里ViewFlipper

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

答案 1 :(得分:0)

在我的情况下,我无法弄清楚如何使用LayoutTransition,因此我没有使用View,而是使用包含View的两个副本的ViewFlipper替换它。当我需要用另一个替换视图时,我会跟踪当前显示的视图中的哪一个,然后在屏幕外更新另一个,然后使用标准的“从左滑动”和“从右滑动”动画showNext()。这比我真正想要的更复杂并且使用更多内存,但它确实起到了作用。

答案 2 :(得分:0)

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