先看效果:
本文Github
https://github.com/AndroidMsky/ElasticLayout
先解释一下标题不然被说成标题党可不好,为什么是超轻量,因为我知道用Listview和RecyclerView可以实现这样的效果,但是大家都知这二者都是需要adapter去适配数据,用起来比较麻烦,而且二者默认都是可以滑动的。
那么,当你遇到如下需求,关键人信息中,关键人数量是动态的,但是不会太多。整个页面是可以上下滑动的,关键人信息,基本资料,财务信息,都是可以展开和关闭的,里面都有5项左右的信息,如图:
面对这个需求你怎么办?小李说,可以用listview加载不同样式的布局,然后写在一个list里,当用户展开关键人信息的时候去移除或者添加一些item然后重新适配listview,小李啪啪啪300行代码搞出来了,效果还不错,只是展开时候没有动画。小明马上来了说小李listview已经快退出历史舞台了用起来不如RecyclerView,而且RecyclerView对动画的支持也更加友好,好的,我来啪啪啪写出150行代码,小李用RecyclerView实现了需求。
然而他们的项目经理对二人的代码都不满意,首先小李的没有过渡动画代码量太大,小明的呢,可以还不错,不过多样式逻辑复杂,数据不多,RecyclerView的view复用优势也不明显。用一个LinearLayout,如果超长需要滑动用ScrollView好不好?于是小李跑回去实现了效果。
首先准备一个工具类,以属性动画的形式改变View的高度:
分别传入view,view当前高度,view结束高度,动画时间毫秒。
public static void