【问题标题】:Android view animation: replacing view by itselfAndroid视图动画:自行替换视图
【发布时间】:2011-09-29 09:41:08
【问题描述】:

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

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

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

我应该怎么做?

【问题讨论】:

    标签: android animation


    【解决方案1】:

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

    LayoutTransition 有一个动画功能,您可能想研究一下。

    【讨论】:

    • 是的,我正在研究 LayoutTransition,但不太清楚它在这种情况下如何应用。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2013-07-15
        • 2015-07-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多