【发布时间】:2015-05-04 10:34:03
【问题描述】:
我知道大量文章描述了如何为 listView 项的展开/折叠设置动画,但我根本无法让它工作:-(
我有一个 listView,其中每个项目都包含一个隐藏的 LinearLayout 元素 ll (View.GONE),我想使用动画展开/折叠 ll。我的问题是 - 显然 - ll 的可变高度。 ll 的高度设置为 wrap_content,因为它包含描述和一些图像。
在我看来,挑战在于我一开始将 ll 的生存能力设置为 View.GONE。如果我在开始动画之前将其更改为 View.VISIBLE,则该区域会立即扩展并且文本会向下动画。如果我在动画后更改可见性,我不会获得动画效果。
这是来自我的 onItemClickListener 的 sn-p:
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);
任何人都可以阐明如何使用高度 wrap_content 和初始可见性 View.GONE 来实现元素的动画吗?
如果我错过了一个明显的答案,我真的很抱歉,但我只是觉得我已经尝试了一切...... :-/
提前致谢
【问题讨论】:
标签: android listview android-animation