所以我所做的是使用常规列表视图,然后在单击时为行视图设置动画。
我使用这个方法来制作动画:Android animate drop down/up view proper
如果要下拉的视图的高度是 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;
}
视图应该在动画开始之前消失,然后在动画开始时可见。
编辑:我在这里做了一个完整的例子。