删除然后添加同一个孩子时的Android布局过渡动画

时间:2014-03-05 21:57:42

标签: android animation drag-and-drop

情境: 我正在线性布局中创建拖放功能。这是一个非常简单的布局:根部的一个LinearLayout和内部的许多视图(出于测试目的,它们只是具有不同颜色背景的View类的实例)。我已经创建了系统,你可以“选择”一个视图,这是由长时间点击其中一个子视图引起的。这会创建拖动阴影,此时我会调用容器上的removeView()来给人一种已经拾取视图的印象。我把这个观点留在记忆中。拖动视图时,如果要放开拖动的阴影,则会移动占位符视图以显示拖动位置的eventaul拖放位置。这也很有效,然后将删除的视图添加回占位符所在的索引。

问题: 启用'android:animateLayoutChanges'时,动画会使整个过程看起来更加顺畅。由此创建的一个工件是当拖动的视图被删除时(拖动开始时被删除的相同视图被添加回容器中)显示从拖动视图的原始位置到的过渡动画这是新的立场。添加 new 视图时(例如,每次更改位置时都会创建占位符),它会淡入。

分析: 从它的外观来看,容器正在记住被删除的视图,因此当再次添加相同的视图时,动画师将其解释为移动而不是添加新视图。

问题: 如何防止动画师解释移除和添加相同的子项作为移动而不是单独的移除和添加操作的此行为?

答案: 这就是你进来的地方。

提前致谢。

0 个答案:

没有答案