最后更新

它已经相当一段时间,因为我写了这个答案。从那以后很多变了。最大的变化是引入了RecyclerView,这使得动画列表或网格变得容易。如果可以,我强烈建议切换到RecyclerView。对于那些不能,我会看到我可以做什么来修复我的图书馆的错误。

原来的答复

我其实不喜欢流行的实现,仅仅使用一个ListView与扩大动画的动画ExpandableListView的,因为在我的使用情况下,我的每一个组有很多的孩子,因此使用正常的ListView是不可行的,因为子视图不会被回收,并且内存使用量会很大,而且性能较差。相反,我采用了更加困难但更具可扩展性和灵活性的方法。

我扩展了ExpandableListView类并覆盖了onCollapse和onExpand函数,我还创建了名为AnimatedExpandableListAdapter的BaseExpandableListAdapter的子类。在适配器内部,我重写了getChildView函数并使函数最终成功,以便函数不会再次被覆盖。相反,我提供了另一个称为getRealChildView的函数,用于子类重写以提供真实的子视图。然后我给该类添加了一个动画标志,并且如果设置了动画标志,getChildView将返回一个虚拟视图,如果该标志未设置,则返回真实视图。现在,随着舞台布景我做onExpand如下:

设置在适配器动画标志,告诉哪个组正在扩大适配器。

致电notifyDataSetChanged()(强制适配器在屏幕上为所有视图调用getChildView())。

适配器(动画模式下)将为初始高度为0的展开组创建一个虚拟视图。适配器将获得真实的子视图并将这些视图传递给虚拟视图。

虚拟视图将开始在其自己的onDraw()函数中绘制真实的子视图。

适配器将启动一个动画循环,该动画循环将展开虚拟视图,直到其尺寸合适。它还将设置一个动画侦听器,以便它可以在动画完成后清除动画标志,并且还会调用notifyDataSetChanged()。

最后有了这一切完成后,我不仅能够得到想要的动画效果也有理想表现,此方法将工作组拥有超过100名儿童。

对于折叠动画,需要做更多的工作才能完成所有设置和运行。特别是,当您覆盖onCollapse时,您不想调用父项的功能,因为它会立即折叠该组,从而无法播放动画。相反,您想要在折叠动画结束时调用super.onCollapse。

UPDATE:

我花了一些时间在本周末重写我实现这个AnimatedExpandableListView和我解除与这里的用法示例源: https://github.com/idunnololz/AnimatedExpandableListView/

android expandablelistview 动画,的Android ExpandableListView使用动画相关推荐

  1. android窗口退出动画,如何在Android中为弹出窗口制作动画

    PopupWindow自定义布局更方便,并且显示位置自由,没有任何限制.使用下面的代码并享受动画.在此动画中,使用底部滑入和滑出,但是您只能更改滑入/滑出动画,并根据您的动画对应用程序中的任何位置进行 ...

  2. Android模仿iPhone View旋转刷新数据动画详解

    因为小马很喜欢在不同的页面之间跳转时加点好玩的动画,今天无意间看到一个动画效果感觉不错,几种效果图如下,既然好玩就写在博客中,直接说就是:该效果类似于iPhone中View的切换动画效果,今天就只介绍 ...

  3. Android 动画之View动画效果和Activity切换动画效果

    View动画效果: 1.>>Tween动画 通过对View的内容进行一系列的图形变换(平移.缩放.旋转.透明度变换)实现动画效果,补间动画需要使用<set>节点作为根节点,子节 ...

  4. android ui动画效果怎么做,AndroidUI 布局动画-为列表添加布局动画效果

    新建一个Android project ,使MainActivity 继承自 ListActivity: public class MainActivity extends ListActivity ...

  5. android图片gif动画效果,android中类似于gif 实现图片的动画效果

    案例:实现gif动画效果,连续播放图片 由于是转载的,也就没必要多说,直接上代码 案例:在android中实现gif动态图片的效果: EarthAnimationActivity.java packa ...

  6. Android实现仿QQ登录界面背景动画效果

    登录QQ的时候,我们会看到在登录界面的背景不是静态的,而是一段动画效果,刚开始觉得蛮好奇的,现在我们也来实现一下这种效果,实现起来还是挺简单的. 实现步骤: 1.自定义CustomVideoView类 ...

  7. android 中间按钮突出,Android 实现 按钮从两边移到中间动画效果

    Android 实现 按钮从两边移到中间动画效果html package org.shuxiang.test; import android.app.Activity; import android. ...

  8. android矢量动画 充电,android矢量动画

    android矢量动画! 直接来个例子就明白了!(这里我把与动画无关的属性都用-表示) 首先你要有个矢量图 比如这个矢量图xml文件叫"vector1",文件在res\drawab ...

  9. [android] 练习样式主题自定义activity切换动画

    主要练习了自定义样式和主题,继承android系统默认的样式并修改,练习xml定义淡入淡出动画 anim/fade_in.xml <?xml version="1.0" en ...

  10. Android Activity和Fragment的转场动画

    Activity转场动画 Activity的转场动画是通过overridePendingTransition(int enterAnim, int exitAnim)实现的. 这个方法是API Lev ...

最新文章

  1. 人参的用法 和 吃法
  2. 【MM配置】Pricing 采购定价过程总览
  3. Redis学习手册(String数据类型)
  4. 【Linux内核】内存映射原理
  5. php的cookie变量作用,PHP语言中cookie的作用
  6. large计算机应用,cies - 计算机应用.pdf
  7. docker修改服务器ip地址,如何修改docker的ip地址
  8. Http请求报文解析
  9. 01 牛顿迭代公式
  10. 希尔排序--简单易懂图解
  11. 浦发银行面试笔试经历
  12. html5 设计 form,为HTML5表单设计表单模板
  13. 机器学习-朴素贝叶斯(基础讲解+代码实现+图像展示)
  14. 免费使用GPU服务器
  15. 转:ARM 与RealView
  16. 视觉中国财报背后的版权门余波
  17. python数据分析 - 如何探索数据
  18. 第五章 代码的可复用性——复用性的结构
  19. translation的使用
  20. 注册资金含有外资的公司可以申请IDC许可证吗

热门文章

  1. STC15单片机学习笔记1——STC15W4K56S4引脚功能整理说明
  2. 一款非常好看的婚纱请柬设计英文字体
  3. 将.class文件反编译为.java文件
  4. unity学习之可编程渲染管线 SRP Batcher
  5. java web开源考勤系统_Java开源企业考勤系统ClockSimpleJEE4预发布版0.9.0
  6. 关于双网卡同时连接内外网
  7. snagit 10.0.1.58和Patch_SnagIt.exe汉化补丁安装流程图
  8. 【分享】VMwareESXI详细黑群晖教程 DS36156
  9. Axure RP 9 下载安装
  10. 超级简单的前端 自动复制功能