Ahora que la Biblioteca de soporte de diseño de Android está fuera, ¿alguien sabe cómo implementar un menú Fab ampliado con ella, como el fab en la aplicación Inbox?
Debería verse así:
Ahora que la Biblioteca de soporte de diseño de Android está fuera, ¿alguien sabe cómo implementar un menú Fab ampliado con ella, como el fab en la aplicación Inbox?
Debería verse así:
Respuestas:
Actualmente, no se proporciona ningún widget en la Biblioteca de diseño. La única forma de hacerlo de forma rápida y sencilla es mediante el uso de bibliotecas de terceros.
Obviamente, también puede hacer esto usando la Biblioteca de diseño, pero será un trabajo enorme y requerirá mucho tiempo. He mencionado algunas bibliotecas útiles que pueden ayudarlo a lograr esto.
Estoy usando el cuarto.
fuente
Conseguí un mejor enfoque para implementar el menú FAB de animación sin usar ninguna biblioteca o escribir un enorme código xml para animaciones. Espero que esto ayude en el futuro para alguien que necesita una forma simple de implementar esto.
Simplemente usando la
animate().translationY()
función, puede animar cualquier vista hacia arriba o hacia abajo como hice en mi código a continuación, verifique el código completo en github . En caso de que esté buscando el mismo código en kotlin, puede consultar el repositorio de código de kotlin Animating FAB Menu .Primero defina todas sus FAB en el mismo lugar para que se superpongan entre sí, recuerde que la FAB debe ser que desea hacer clic y mostrar otra. p.ej:
Ahora en su clase de Java simplemente defina todos sus FAB y realice el clic como se muestra a continuación:
Use el
animation().translationY()
para animar su FAB, prefiero que use el atributo de este método en DP ya que solo usar un int afectará la compatibilidad de la pantalla con una resolución más alta o más baja. Como se muestra abajo:Ahora defina la dimensión mencionada anteriormente dentro de res-> valores-> dimens.xml como se muestra a continuación:
Eso es todo, espero que esta solución ayude a las personas en el futuro, que están buscando una solución simple.
Si desea agregar una etiqueta sobre el FAB, simplemente tome un LinearLayout horizontal y coloque el FAB con la vista de texto como etiqueta, y anime los diseños si encuentra algún problema al hacer esto, puede verificar mi código de muestra en github, me he encargado de toda la compatibilidad con versiones anteriores problemas en ese código de muestra. compruebe mi código de muestra para FABMenu en Github
para cerrar la FAB en Backpress, anule onBackPress () como se muestra a continuación:
La captura de pantalla también tiene el título con el FAB, porque lo tomo de mi aplicación de muestra actual ingithub
fuente
Primero cree los diseños de menú en el archivo xml de su diseño de Actividad. Por ejemplo, un diseño lineal con orientación horizontal e incluye un TextView para la etiqueta y luego un Botón de acción flotante junto al TextView.
Cree los diseños de menú según su necesidad y número.
Cree un botón de acción flotante base y, al hacer clic, cambie la visibilidad de los diseños de menú.
Por favor, consulte el siguiente código para la referencia y para obtener más información, consulte mi proyecto desde github
Proyecto de pago de Github
Estas son las animaciones
Animación de apertura del menú FAB:
Animación de cierre del menú FAB:
Luego, en mi Actividad, simplemente utilicé las animaciones anteriores para mostrar y ocultar el menú FAB:
Mostrar menú fabuloso:
Cerrar menú fabuloso:
Aquí está la clase de actividad:
Aquí están las capturas de pantalla
fuente
Una biblioteca más que implementa el marcado rápido a partir de las pautas de diseño de materiales:
https://github.com/leinardi/FloatingActionButtonSpeedDial
fuente
Cuando intenté crear algo similar al botón de acción flotante de la bandeja de entrada, pensé en crear un componente personalizado propio.
Sería un diseño de marco simple con altura fija (para contener el menú expandido) que contiene el botón FAB y 3 más colocados debajo de la FAB. cuando haces clic en FAB simplemente animas otros botones para traducir desde debajo de la FAB.
Hay algunas bibliotecas que hacen eso (por ejemplo https://github.com/futuresimple/android-floating-action-button ), pero siempre es más divertido si lo crea usted mismo :)
fuente
layout_anchor
ylayout_anchorGravity
no están trabajando para míPuede usar la biblioteca FloatingActionMenu o hacer clic aquí para obtener un tutorial paso a paso. Salida del tutorial:
fuente
Utilizo esta biblioteca para hacer esto: https://github.com/futuresimple/android-floating-action-button
Bastante simple de usar;)
fuente
layout_anchor
ylayout_anchorGravity
no están trabajando para míOtra opción para el mismo resultado con la animación ConstraintSet:
1) Ponga todas las vistas animadas en un diseño de restricción
2) Anímalo a partir de un código como este (si quieres algunos efectos más, depende de ti ... este es solo un ejemplo)
menuItem1 y menuItem2 es el primer y segundo FAB en menu, descriptionItem1 y descriptionItem2 es la descripción a la izquierda del menú, parentConstraintLayout es la raíz RestraintLayout que contiene todas las vistas animadas, isMenuOpened es alguna función para cambiar la bandera abierta / cerrada en el estado
Puse el código de animación en el archivo de extensión pero no es necesario.
fuente