效果图来看,点击事件触发view
的展开收起,并在收起状态下保留
了第一个子view显示,这个展开收起其实就是view的高度
变化,所以只要控制好高度,就能很简单
的实现这个效果。
=============================================================
-
1.初始化参数 设置方向等
-
2.根据动画执行进度计算高度
初始化
class ExpandLinearLayout : LinearLayout {
//是否展开,默认展开
private var isOpen = true
//第一个子view的高度,即收起保留高度
private var firstChildHeight = 0
//所有子view高度,即总高度
private var allChildHeight = 0
/**
- 动画值改变的时候 请求重新布局