5

当我尝试为 Android 项目创建自定义LayoutAnimationController时,我遇到了一个问题。它有方法

public final Animation getAnimationForView(View v)

对于我的自定义 LayoutAnimationController,我需要重写此方法,因为每个视图都应该获得一个“独特”的动画。是否可以通过使用反射或类似技术来覆盖公共最终方法,或者您有其他想法?

我知道在通过反射或其他方式覆盖 java final 方法中已经讨论过类似的事情?但是那里出现的“解决方案”非常针对用户的问题,并没有完全回答覆盖最终方法的问题。

4

2 回答 2

0

看起来LayoutAnimationController不打算像这样使用。

如果您能够getAnimationForView(View v)使用您想要的大多数方法/构造函数覆盖的功能LayoutAnimationController将毫无意义,因为创建此类是为了在多个视图上使用单个动画(具有不同的延迟)。

也许最好查看源代码并根据这些信息创建自己的动画控制器。

于 2013-03-22T21:49:34.313 回答
0

一个老问题,但我仍然觉得我应该回答,因为似乎没有使用LayoutAnimationController.

我最终覆盖AnimationSet并将LayoutAnimationController功能移至该类。当然,连同我的自定义代码。

最后,我不得不对此大发雷霆:这不是我第一次在 Google 框架中以您喜欢的方式代码遇到某种私有/最终/访问被拒绝的情况。如果他们给我们程序员带来困难,他们似乎觉得很有趣。我知道Transformation只有Animations 是为了表演,但有时我们只是需要一些不同的东西,而通过这种幼稚的方式使我们失去能力是非常荒谬的。/咆哮

于 2014-04-03T07:57:46.930 回答