private void togle() {
ll_des_container.measure(0, 0);
int start = ll_des_container.getMeasuredHeight();
int end = 0;
if (mIsOpen) {
/**对应布局的高度发生了变化
从一个应有的高度到0的过程*/
ValueAnimator animator = ValueAnimator.ofInt(start, end);
animator.start();
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
int animatedValue = (int) animation.getAnimatedValue();
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) ll_des_container.getLayoutParams();
params.height = animatedValue;
ll_des_container.setLayoutParams(params);
}
});
} else {
ValueAnimator animator = ValueAnimator.ofInt(end, start);
animator.start();
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
int animatedValue = (int) animation.getAnimatedValue();
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) ll_des_container.getLayoutParams();
params.height = animatedValue;
ll_des_container.setLayoutParams(params);
}
});
}
mIsOpen = !mIsOpen;
}