我正在尝试在可展开 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/