美文网首页
item 张开收回动画实现

item 张开收回动画实现

作者: ng_4a1a | 来源:发表于2018-03-19 15:18 被阅读0次

//检查传入的widthMeasureSpec和heightMeasureSpec是否与当前的值是一样的,不一样的话,调用onMeasure函数,并设置mPrivateFlags。

view.measure(0,0);

int menuLayoutHeight =tvTop.getMeasuredHeight();.

//展开

public void show(final View v ,int height){

        v.setVisibility(View.VISIBLE);

        ValueAnimator animator = ValueAnimator.ofInt(0,height);

        animator.setDuration(500);

        animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {

            @Override

            public void onAnimationUpdate(ValueAnimator animation) {

                int value = (Integer) animation.getAnimatedValue();

                v.getLayoutParams().height = value;

                v.setLayoutParams(v.getLayoutParams());

            }

        });

        animator.start();

    }

//收回

public void dismiss(final View v ,int height){

        ValueAnimator animator = ValueAnimator.ofInt(height,0);

        animator.setDuration(500);

        animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {

            @Override

            public void onAnimationUpdate(ValueAnimator animation) {

                int value = (Integer) animation.getAnimatedValue();

                if (value == 0) {

                    v.setVisibility(View.GONE);

                }

                v.getLayoutParams().height = value;

                v.setLayoutParams(v.getLayoutParams());

            }

        });

        animator.start();

    }

相关文章

网友评论

      本文标题:item 张开收回动画实现

      本文链接:https://www.haomeiwen.com/subject/ylhpqftx.html