FloatingActionButton setVisibility () no funciona
No puedo ocultar mi FloatingActionButton
. Aquí está mi código:
XML:
- Lista completa de los atributos del tema de color del material
- ¿Cómo hacer que el menú emergente de desbordamiento evite obstruir la barra de acción?
- Efecto de ondulación en los elementos desplegables de Spinner de fondo de color (appcompat-v7 V21)
- Estilo AppCompat v21 Dark ToolBar
- CardView no muestra Shadow en Android L
<CoordinatorLayout> <AppBarLayout android:id="@+id/appbar"> <CollapsingToolbarLayout> <ImageView/> <android.support.v7.widget.Toolbar /> </CollapsingToolbarLayout> </AppBarLayout> <NestedScrollView /> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" app:layout_anchor="@id/appbar" app:layout_anchorGravity="bottom|right|end"/> </CoordinatorLayout>
Y estoy llamando:
fab.clearAnimation(); fab.setVisibility(View.GONE);
Estoy tratando de ocultar el FAB, pero parece que setVisibility
+ clearAnimation
no funciona si el FAB está en un CoordinatorLayout
.
Incluso si llamo fab.clearAnimation
, la animación todavía se activa. ¿Alguien puede ayudarme?
- Cómo implementar la ampliación de animación en elemento compartido en la transición de actividad
- AppCompat Snackbar no centrado en la tableta
- Android CardView no funciona en Api 21
- AppCompat ActionBar tema giratorio desplegable
- Material Tema Android Action Bar Estilo Generador
- Error: (2, 0) Plugin con id 'com.github.dcendents.android-maven' no encontrado
- ¿Cómo mostrar un cuadro de diálogo en Android con el efecto revelador del diseño de material?
- Diseño del material "Delightful Details" Implementación
Si su problema es la animación, podría intentar invalidar el Behavior
FAB. En cuanto a la visibilidad, debe anular el anclaje que ha establecido en su diseño:
CoordinatorLayout.LayoutParams p = (CoordinatorLayout.LayoutParams) fab.getLayoutParams(); p.setBehavior(null); //should disable default animations p.setAnchorId(View.NO_ID); //should let you set visibility fab.setLayoutParams(p); fab.setVisibility(View.GONE); // View.INVISIBLE might also be worth trying //to bring things back to normal state CoordinatorLayout.LayoutParams p = (CoordinatorLayout.LayoutParams) fab.getLayoutParams(); p.setBehavior(new FloatingActionButton.Behavior()); p.setAnchorId(R.id.appbar); fab.setLayoutParams(p);
Me encontré exactamente con el mismo problema. Parece que el equipo de Android de Google no quiere que tenga el control de la visibilidad cuando el FloatingActionButton está anclado a un AppBarLayout, como se discute en este número – FloatingActionButton Ignora Visibilidad de la vista
Parece que una solución viable está envolviendo el FAB en FrameLayout y estableciendo la visibilidad en el contenedor en su lugar, como esto:
<android.support.design.widget.FrameLayout android:id="@+id/fab_container" android:layout_height="wrap_content" android:layout_width="wrap_content" android:visibility="invisible"> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/fab_icon"/> </android.support.design.widget.FrameLayout>
Sin embargo, puede desear considerar si este es el comportamiento ideal. Los defensores de Google recomiendan que el FAB sea visible tan pronto como se cree la pantalla. Si lo está ocultando por más tiempo de lo necesario para animarlo, considere mostrar un estado deshabilitado.
- ¿Cómo puedo guardar estructuras de datos en android?
- Casting resultado de la multiplicación de dos enteros positivos a largo es el valor negativo