在可扩展列表中对子视图进行动画处理

3
我每个组视图只有一个子视图,它们是从layout .xml文件中膨胀而来的。我希望能够对子视图进行动画处理,以便在显示子项时,其下方的列表项会向下滑动。我尝试了许多种动画方式,但问题是子视图的高度/宽度首先变为可见状态,然后视图才在该空间内进行动画处理。然而,我希望使一个子视图显示在两个列表视图之间,通过使以下组视图向下滑动为子视图让位。
例如,我尝试了以下方式。动画确实发生了,但不是我上述所述的那种效果。我已经在getChildView()中添加了以下内容,就在我返回子视图之前:
    Animation anim = AnimationUtils.loadAnimation(MyExpandableList.this,
                                                   R.anim.translate);
    v.setAnimation(anim);

这是我的translate.xml文件:
    <?xml version="1.0" encoding="utf-8"?>
       <translate xmlns:android="http://schemas.android.com/apk/res/android" 
            android:fromYDelta="-50%p" 
    android:toYDelta="0"
    android:duration="500"/>

感谢您的帮助。
安妮。
1个回答

1

你需要对当前添加的子视图下面的所有子视图进行动画处理。 将所有的 动画 添加到一个 AnimationSet 中并启动该集合。


正如我之前提到的,每个组视图最多只有一个子视图。因此,无法将动画添加到所有子视图中。 - user898195
将当前添加视图下面的所有GroupView都进行动画处理。这样就可以按照您的需求进行动画处理了。 - Ron
我不想对整个组视图进行动画处理,我只想对每个组视图中的一个子视图进行动画处理。 - user898195
不使用动画组视图,你如何期望整个内容滑动呢?在当前添加的视图下面的所有视图(无论在列表中是哪一个)都应该包含在动画中。 - Ron
这就是重点!我不想让整个屏幕滑动。我只想让我的子视图以滑动的方式出现 - 这应该看起来像是将下一个视图组向下推。在折叠子视图时,反之亦然。 - user898195
1
你应该了解在安卓中动画是如何进行的。当视图进行动画时,它被设置为不可见,并且视图的位图被移动到屏幕上,而不是视图本身。最后,视图再次设置为可见状态,并销毁位图。因此,它不可能像新视图一样推动其他组,因为一旦添加了视图,它们就已经被推下去了。所以你需要将以下组也添加到动画中。 - Ron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接