对视图组中的一组子对象进行动画处理

kis*_*u27 5 android android-animation android-layout android-view

我正在自定义ViewGroup。

这个ViewGroup有很多孩子。我需要设置一些动画并更改其位置。我了解到Android动画只会移动位图,而不会移动真实对象。我一直在尝试通过遵循各种资源来移动它们,但都失败了。

到目前为止,我在使用ViewGroup做什么:

  1. 测量孩子和ViewGroup
  2. 将孩子放置在onLayout中

我正在尝试做的进一步

使用自定义动画移动一小部分子级。我使用的是自定义动画对象,因为我需要移动一堆视图,并且将所有它们都应用translationX。我知道的另一个选择是对所有这些动画都启动一个单独的动画,这种想法使我认为动画没有得到优化。

问题

视图动画效果很好,但其实际位置保持不变。因此,下一次我尝试制作相同类型的动画时,但是在新坐标上,它不起作用。因为,他们的位置尚未更新。

我尝试了什么

  1. 使用onAnimationEndlayout每个孩子到新的左,上,右,下位置。所有观点都消失了
  2. 在上onAnimationEnd,重置translationX为零,然后开始重新放置视图。通话没有效果view.setTranslationX(0f)

有人可以帮我正确的方法吗?谢谢

psk*_*ink 1

在子视图上调用layout() 动画时

  • 在动画期间调用layout()不是很昂贵吗? (2认同)