当我尝试为Android项目创建自定义LayoutAnimationController时,我遇到了问题。它有方法
public final Animation getAnimationForView(View v)
对于我的自定义LayoutAnimationController,我需要覆盖此方法,因为每个视图都应该获得“唯一”动画。 是否可以通过使用反射或类似技术来覆盖公共最终方法,或者您是否有其他想法?
我知道在override java final methods via reflection or other means?中有类似的内容,但是那里出现的“解决方案”对于用户的问题非常具体,并没有完全回答覆盖最终方法的问题。
答案 0 :(得分:0)
看起来LayoutAnimationController
不打算像这样使用。
如果您能够使用您想要的功能覆盖getAnimationForView(View v)
,那么LayoutAnimationController
的大多数方法/构造函数都没有意义,因为这个类是为了使用单个动画(具有不同的延迟)而创建的多个观点。
根据这些信息,查看源代码并创建自己的动画控制器可能会更好。
答案 1 :(得分:0)
一个老问题,但我仍然觉得我应该回答,因为使用LayoutAnimationController
似乎不是一个可能的解决方案。
我最终覆盖了AnimationSet
,只是将LayoutAnimationController
功能移到了该类。当然,还有我的自定义代码。
最后,我只是不得不喋喋不休:这不是我第一次在谷歌的框架中以你喜欢的方式遇到某种私人/最终/访问被拒绝。如果他们给程序员带来困难,他们似乎觉得很有趣。我理解Transformation
只有Animation
才有表现,但有时候我们只需要不同的东西,通过这些幼稚的方式让我们失望是不可能的。 /咆哮子>