textalignment studio setdrawingcacheenabled setbackgroundresource requestfocus minwidth android animation

android - studio - Animaciones y setVisibility



setdrawingcacheenabled (2)

Tengo un LinearLayout que quiero mostrar / ocultar haciendo clic en el enlace "más detalles". Lo hago llamando

moreDetailsSection.setVisibility(View.VISIBLE);

o

moreDetailsSection.setVisibility(View.GONE);

para mostrar / ocultarlo. Esto funciona bien, pero quería agregar una animación que hace que los campos de diseño se deslicen muy bien, pero esto solo se ejecuta la primera vez que el campo se hace visible, si lo oculto y lo vuelvo a mostrar, el campo simplemente aparece de repente . Aquí está el código de la animación (moreDetailsSection es el diseño en cuestión):

AnimationSet set = new AnimationSet(true); Animation animation = new AlphaAnimation(0.0f, 1.0f); animation.setDuration(250); set.addAnimation(animation); animation = new TranslateAnimation( Animation.RELATIVE_TO_SELF, 1.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f ); animation.setDuration(150); set.addAnimation(animation); LayoutAnimationController controller = new LayoutAnimationController(set, 0.25f); moreDetailsSection.setLayoutAnimation(controller);

¿Algún consejo sobre cómo hacer que esto se ejecute CADA vez que muestro el diseño y no solo la primera vez?


Supongo que la sección másDetails es INVISIBLE al principio. solo tiene que crear el objeto Animación y llamar al siguiente código cuando se hace clic en el enlace más detalles.

moreDetailsSection.startAnimation(animation); moreDetailsSection.setVisibility(View.VISIBLE);


Puede usar esta línea en su vista para ese diseño:

android:animateLayoutChanges="true"