private void togle() {
ll_des_container.measure(0, 0);
int start = ll_des_container.getMeasuredHeight(); //动画的开始高度
int end = 0; //动画的结束高度
if (mIsOpen) {//折叠
/**对应布局的高度发生了变化
从一个应有的高度到0的过程*/
// int widthMeasureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
// int heightMeasureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
// ll_des_container.measure(widthMeasureSpec, heightMeasureSpec);
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;
}
实现点击view并隐藏与显示指定view
最新推荐文章于 2024-06-12 15:53:59 发布