androidandroid-animationandroid-transitions

Overlapping TransitionManager animations in android


I am trying to expand and collapse my view with the help of TransitionManager animation. Following is the output,

enter image description here

See the overlapping layout while collapsing top view. How to avoid that ? I set "detailedView" (one with icons) visibility GONE and use following code for animation,

topView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                TransitionManager.beginDelayedTransition(topView);
                TransitionManager.beginDelayedTransition(bottomView);
                if (detailsView.getVisibility() == View.VISIBLE) {
                    detailsView.setVisibility(View.GONE);
                    cardText.setText("Collapse Title");
                } else {
                   detailsView.setVisibility(View.VISIBLE);
                   cardText.setText("Expanded Title");

                }
            }
        });

Solution

  • I would build the animation differently. I would make a LinearLayout with the top cell with wrap_content, and when clicking I would do something like:

     valueAnimator = ValueAnimator.ofInt(titleContainer.getHeight(),titleContainer.getHeight() + newHeight );
        valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
    
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                titleContainer.setHeight(animation.getAnimatedValue());
            }
        });
        valueAnimator.setDuration(270);
        valueAnimator.start();