1. 程式人生 > >實現點選view並隱藏與顯示指定view

實現點選view並隱藏與顯示指定view

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; }