FloatingActionButton no desciende al descartar Snackbar

Estoy tratando de usar una Snackbar . Tengo un FloatingActionButton envuelto en un CoordinatorLayout . Cuando la Snackbar muestra, el botón se mueve correctamente hacia arriba. Cuando se rechaza automáticamente, el botón se mueve hacia abajo. Pero si descarto el Snackbar programación, el botón no bajará. Mi código es simple:

 mSnackbar = Snackbar.make(mCoordinatorLayout, text, Snackbar.LENGTH_LONG) .setAction(R.string.undo, new View.OnClickListener() { @Override public void onClick(View v) { undoDeleteTasks(); } }); mSnackbar.show(); 

¿Hay una manera de hacer que el FloatingActionButton mueva hacia abajo cuando la Snackbar se descarta programáticamente?

Prueba esto:

 Snackbar mysnack = Snackbar.make( fab, "Hi, welcome to my app!", Snackbar.LENGTH_LONG ); mysnack.getView().addOnAttachStateChangeListener( new View.OnAttachStateChangeListener() { @Override public void onViewAttachedToWindow( View v ) { } @Override public void onViewDetachedFromWindow( View v ) { fab.setTranslationY( 0 ); } }); mysnack.show(); 

El problema es que, en un CoordinatorLayout , el FAB se mueve porque su clase de comportamiento onDependentViewChanged() se llama cuando la Snackbar anima dentro o fuera.

Sin embargo, cuando llama a Snabackbar.dismiss() no se produce ninguna animación. Y por lo tanto no onDependentViewChanged() . Y así movimiento de la FAB.

Quiero saber si es posible

  1. Animar a la Snackbar despedir?
  2. Crear un comportamiento que mueve el FAB cuando el Snackbar causa onDependentViewRemoved ()?

La respuesta de Farzad119 es discutiblemente un poco frágil. Mi enfoque, aunque tampoco satisfactorio, es alterar el comportamiento en el FAB para mover el FAB hacia abajo cuando se elimina el SnackBar :

  @Override public void onDependentViewRemoved(CoordinatorLayout parent, FloatingActionButton child, View dependency) { super.onDependentViewRemoved(parent, child, dependency); float translationY = Math.min(0, parent.getBottom() - child.getBottom()); child.setTranslationY(translationY); } 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.