2017-06-15 2 views
1

J'essaye de développer et de réduire ma vue à l'aide de l'animation de TransitionManager. Voici la sortie,Superposition des animations de TransitionManager dans android

enter image description here

Voir la mise en page se chevauchent en vue de dessus l'effondrement. Comment éviter cela? Je mets "detailedView" (une avec des icônes) visibilité GONE et utilisez le code suivant pour l'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"); 

       } 
      } 
     }); 

Répondre

1

Je construirais différemment l'animation. Je ferais un LinearLayout avec la cellule supérieure avec wrap_content, et en cliquant je ferais quelque chose comme:

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(); 
+1

Vous avez raison. Cette façon est beaucoup plus lisse! – Dexter

+0

Je suis content que vous l'ayez aimé. –