ivo*_*vov 16 animation android expandablelistview
我正在尝试在expandablelistview中为我的子视图设置动画.我希望子视图在展开组时从顶部向下滑动,并在折叠组时从底部滑动到顶部.我已经看过几种方法(动画视图组或子视图),但似乎没有一种方法可以很好地工作,或者我做得不对.
我已经从BaseExpandableListAdapter扩展了一个类来创建我自己的自定义适配器.我还有我在getChildView和getGroupView方法中膨胀的组/子项的自定义(xml)视图.
我只希望当前崩溃/扩展的小组为其孩子制作动画.谁能指出我正确的方向?如果您需要更多信息或代码,请告诉我们!
问候,伊沃
所以我所做的就是使用常规列表视图,然后在单击时为行视图设置动画.
我将这个方法用于动画: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)
视图应在动画开始之前消失,然后在动画开始时显示.
编辑:我在这里做了一个完整的例子.
您可以在bindChildView方法中为每个子视图添加动画。为了仅对当前组的子级进行动画处理 - 只需捕获 onExpand 事件,读取其子级,将 id 保存在某个数组上,并在 bindChildView 上 - 仅对保存在该数组上的子级进行动画处理。
| 归档时间: |
|
| 查看次数: |
11331 次 |
| 最近记录: |