【问题标题】:Android Animation for all the items in a list列表中所有项目的 Android 动画
【发布时间】:2010-03-10 16:39:52
【问题描述】:

我有一个 listView,它使用自定义 .xml 来显示每个项目。

很好,在这个 xml 中,我有一个 CheckBox(可见性设置为 GONE)和一个带有文本的 TextView。

我想要的是有一个动画,它将文本向右移动并显示 CheckBox。

我有一个项目的动画工作正常,但如果我想为所有项目启动它,问题就来了。

我尝试循环遍历所有项目,但动画在不同时间开始(所以视觉上很奇怪)。另外,我尝试过使用 AnimationSet,但它将整个列表视图移动到右侧而不是 TextView(我无法从单个项目启动动画集,因为那时只能移动该项目)。

所以..有人可以帮助我吗?

谢谢

【问题讨论】:

    标签: android listview animation


    【解决方案1】:

    使用两个Animation 对象,一个用于CheckBox,一个用于TextView。配置每个Animation,并在每个小部件上调用startAnimation()。动画将并行运行。

    【讨论】:

    • 感谢您的回复,但我想要的是动画在整个列表中并行运行。例如,当我按下一个按钮时,所有行同时运行动画
    • 好的,使用 2xN 个 Animation 对象,每个可见行中每个 CheckBox 一个,每个可见行中每个 TextView 一个。不过,我不知道这会表现如何。
    • 我想我没有很好地解释这个问题。问题是我不知道何时调用 startAnimation() 因为如果我在遍历元素并为行创建动画的循环中调用它,则每行的动画不会同时运行。如果设置一个 AnimationSet,它只适用于一行,而不适用于整个列表。再次感谢
    • 编写一个更紧密的循环。否则,你想要的可能是不可能的。
    • 我找到了方法...我不需要动画。如果我让检查按钮可见就足够了......有时最简单的解决方案更好......无论如何,谢谢
    【解决方案2】:

    我是 Android 开发的新手,但听起来您可能想考虑编写一个继承自 LayoutAnimationController 的自定义类。在这个子类中,您将覆盖 getDelayForView(android.view.View) 方法。这样,您可以将延迟时间设置为空,并且指定的动画应该同时在所有项目上运行。

    就像我说我是这个 Android 派对的新手,所以我可以完全离开,但根据我的理解,这听起来像是要走的路。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-17
      • 2013-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多