动画具有可变高度的ListView项(wrap_content)

时间:2015-03-03 16:56:46

标签: android listview android-animation

我知道很多篇文章都描述了如何为listView项目的扩展/折叠设置动画,但我根本无法让它工作: - (

我有一个listView,其中每个项目都包含一个隐藏的LinearLayout元素ll(View.GONE),我想使用动画展开/折叠ll。我的问题 - 显然 - 是ll的可变高度。 ll的高度设置为wrap_content,因为它包含描述和一些图像。

我认为这是一个挑战,因为我开始将ll的可见性设置为View.GONE。如果我在开始动画之前将其更改为View.VISIBLE,则该区域会立即展开,文本会动画下来。如果我在动画后改变可见性,我就不会获得动画效果。

这是我onItemClickListener的一个片段:

LinearLayout llMatchInfo = (LinearLayout) view.findViewById(R.id.matchInfo); 
//llMatchInfo.setVisibility(llMatchInfo.getVisibility() == View.GONE ? View.VISIBLE : View.GONE);

Animation animation = AnimationUtils.loadAnimation(ctx, (llMatchInfo.getHeight() == 0) ? R.anim.down_from_top : R.anim.up_from_bottom);
llMatchInfo.startAnimation(animation);

任何人都可以了解如何使用height wrap_content和初始可见性View.GONE来完成动画元素的动画?

如果我错过了一个明显的答案,我真的很抱歉,但我觉得我已经尝试了所有的一切......: - /

提前致谢

1 个答案:

答案 0 :(得分:0)

您可以使用此库:

https://github.com/traex/ExpandableLayout

它可以节省您的生命和时间。 这很简单,您只需要在布局上添加自定义列表视图,使用海关实现创建适配器,setAdapter和voalá。

我只是想帮忙......