【问题标题】:Animate ListView Item with variable height (wrap_content)具有可变高度的动画 ListView 项 (wrap_content)
【发布时间】: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


    【解决方案1】:

    你可以使用这个库:

    https://github.com/traex/ExpandableLayout

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

    我只是想帮忙……

    【讨论】:

    • 对于这么简单的事情,建议使用图书馆应该是最后的手段
    • 我知道...但是我的朋友,生活并不那么容易。
    猜你喜欢
    • 1970-01-01
    • 2019-07-18
    • 2020-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-03
    • 2014-12-15
    • 1970-01-01
    相关资源
    最近更新 更多