¿Existe algún método para cambiar el diseño de un snackBar a una vista personalizada?
Ahora viene negro y podemos cambiar el color de fondo. ¿Pero no sé la forma correcta de inflar un nuevo diseño y convertirlo en un fondo de snackBars?
Gracias...
android
android-layout
android-custom-view
android-snackbar
snackbar
noobEinstien
fuente
fuente

Es posible a partir de la revisión 25.1.0 de la biblioteca de soporte de Android
I. Declare un diseño personalizado en su carpeta de valores / diseño.
Sugerencias:
@dimen/design_snackbarvalores para que coincidan con las pautas de diseño de materiales.?attr/colorAccentpara aplicar los cambios en el tema de la aplicación a Snackbar.II. Amplíe la clase BaseTransientBottomBar .
III. Agregar BaseTransientBottomBar.ContentViewCallback
IV. Agregue un método para crear Snackbar con diseño personalizado y métodos para llenarlo.
V. Crear instancia de
CustomSnackbary llamar alshow()método.Vea más sobre Snackbar y su personalización en materialdoc.com
CustomSnackbar.classCódigo completo :fuente
La forma XML:
El archivo xml de diseño original que se utiliza para el
Snackbares este archivo:design_layout_snackbar_include.xml:Entonces, para anular este diseño , debe escribir su propio diseño con los mismos
android:ids que en este y en surefs.xmlarchivo debe agregar esta línea:fuente
BaseTransientBottomBar, según stackoverflow.com/a/41154330/9636La respuesta es: no personalice la barra de aperitivos. No debe contener más elementos que un texto breve y una acción. Ver las pautas de diseño de materiales de Google .
ACTUALIZACIÓN: Si de todos modos desea personalizar la barra de aperitivos, esto es lo que he implementado en mi aplicación:
Nunca lo he intentado, pero al obtener la vista raíz de Snackbar, podría agregar nuevas vistas a Snackbar mediante programación.
fuente
En onCreate de la actividad:
fuente
¡Lo probé y funciona!
fuente
Prueba el siguiente código.
Nota:
fuente
Para agregar a la respuesta de Yakiv Mospan, para hacer su
BaseTransientBottomBarpresentación personalizada desde la parte inferior como aSnackbar, copie este método de laSnackbarclase para encontrar un padre adecuado para elBaseTransientBottomBarconstructor.fuente
Versión de Kotlin para la respuesta aceptada: https://stackoverflow.com/a/33441214/2437655
fuente
Puedes probar esta biblioteca. Este es un contenedor para la barra de aperitivos predeterminada de Android. https://github.com/ChathuraHettiarachchi/CSnackBar
o incluso puedes usar tu propia vista,
Actualmente, el único problema con el diseño personalizado es que necesitamos pasar la altura de la vista en dp como entrada
fuente