android - 折叠/展开时为可展开 ListView 的子项设置动画

标签 android animation expandablelistview

我正在尝试在可展开 ListView 中为我的 subview 设置动画。我希望 subview 在展开组时从上到下滑动,在折叠组时从下到上滑动。我查看了几种方法(动画 View 组或 subview ),但似乎没有一个效果很好,或者我做得不对。

我从 BaseExpandableListAdapter 扩展了一个类来创建我自己的自定义适配器。我还为我在 getChildView 和 getGroupView 方法中扩展的组/子项提供了自定义 (xml) View 。

我只希望当前折叠/展开的组为其子组设置动画。谁能指出我正确的方向?如果您需要更多信息或代码,请告诉我!

问候, 伊沃

最佳答案

所以我所做的是使用常规 ListView ,然后在单击时为行 View 设置动画。

我用这个方法制作动画:Android animate drop down/up view proper

如果要下拉的 View 的高度是 wrap_content,这可能会有点棘手,对于这个问题,我必须在开始动画之前找到并设置高度:

public static void setHeightForWrapContent(Activity activity, View view) {
    DisplayMetrics metrics = new DisplayMetrics();
    activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);

    int screenWidth = metrics.widthPixels;

    int heightMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
    int widthMeasureSpec = MeasureSpec.makeMeasureSpec(screenWidth, MeasureSpec.EXACTLY);

    view.measure(widthMeasureSpec, heightMeasureSpec);
    int height = view.getMeasuredHeight();
    view.getLayoutParams().height = height;
}

View 应该在动画开始之前消失,然后在动画开始时可见。

编辑:我做了一个完整的例子here .

关于android - 折叠/展开时为可展开 ListView 的子项设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4541287/

相关文章:

android - 在我的 Android 应用中拍照时,我从来没有得到 RESULT_OK,但照片在那里

android - 在 Cocos2d-x 项目中包含新的 Firebase 库

java - 像这样使用继承是个坏主意吗

java - Android 中的动画性能缓慢

java - 在 ExpandableListView 中,如何在子结果的末尾显示额外的一行?

android mediaplayer 在 ICS 上永远循环

javascript - 使用 requestAnimationFrame 和 setTimeout 作为回退的 JS 动画库

javascript - Angular JS 1.2 - 使用 ng-show 动画化子元素

android - 如何在可扩展 ListView 中添加不同的 child

android - Expandablelistview 自定义指标不可见