在折叠/展开时动画化expandablelistview的子项

ivo*_*vov 16 animation android expandablelistview

我正在尝试在expandablelistview中为我的子视图设置动画.我希望子视图在展开组时从顶部向下滑动,并在折叠组时从底部滑动到顶部.我已经看过几种方法(动画视图组或子视图),但似乎没有一种方法可以很好地工作,或者我做得不对.

我已经从BaseExpandableListAdapter扩展了一个类来创建我自己的自定义适配器.我还有我在getChildView和getGroupView方法中膨胀的组/子项的自定义(xml)视图.

我只希望当前崩溃/扩展的小组为其孩子制作动画.谁能指出我正确的方向?如果您需要更多信息或代码,请告诉我们!

问候,伊沃

War*_*zit 5

所以我所做的就是使用常规列表视图,然后在单击时为行视图设置动画.

我将这个方法用于动画:Android动画下拉/向上视图

如果要删除的视图的高度是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;
}
Run Code Online (Sandbox Code Playgroud)

视图应在动画开始之前消失,然后在动画开始时显示.

编辑:我在这里做了一个完整的例子.


Udi*_*nic 2

您可以在bindChildView方法中为每个子视图添加动画。为了仅对当前组的子级进行动画处理 - 只需捕获 onExpand 事件,读取其子级,将 id 保存在某个数组上,并在 bindChildView 上 - 仅对保存在该数组上的子级进行动画处理。

  • 你能更具体一点吗?或者你有示例代码吗?谢谢。 (3认同)

归档时间:

查看次数:

11331 次

最近记录:

10 年,10 月 前