Después de observar en diversos repositorios y páginas de internet finalmente encontramos la solución que te mostramos más adelante.
Solución:
Puede configurar TypeFace obteniendo la vista desde Snack bar
TextView tv = (TextView) (mSnackBar.getView()).findViewById(android.support.design.R.id.snackbar_text);
Typeface font = Typeface.createFromAsset(getContext().getAssets(), "fonts/font_file.ttf");
tv.setTypeface(font);
Diseñar tanto el texto como la acción de la barra de refrigerios
Puede utilizar el mismo método para diseñar tanto el snackbar_text
y snackbar_action
.
Una vez que haya creado una barra de bocadillos, puede usar lo siguiente para obtener las Vistas asociadas con el texto y la acción y luego aplicar cualquier ajuste a la vista.
Snackbar snackbar = Snackbar.make( ... ) // Create the Snackbar however you like.
TextView snackbarActionTextView = (TextView) snackbar.getView().findViewById( android.support.design.R.id.snackbar_action );
snackbarActionTextView.setTextSize( 20 );
snackbarActionTextView.setTypeface(snackbarActionTextView.getTypeface(), Typeface.BOLD);
TextView snackbarTextView = (TextView) snackbar.getView().findViewById(android.support.design.R.id.snackbar_text);
snackbarTextView.setTextSize( 16 );
snackbarTextView.setMaxLines( 3 );
En mi ejemplo, configuré la Acción para que tenga un tamaño de fuente 20 y Negrita, y el Texto para que tenga un tamaño 16 y permita hasta 3 líneas.
Para AndroidX
android.support.design.R.id.snackbar_text
no estará disponible.
Utilizar
com.google.android.material.R.id.snackbar_text
en lugar de.
Si estás usando kotlinentonces prefiero que uses la función de extensión:
fun Snackbar.changeFont()
val tv = view.findViewById(com.google.android.material.R.id.snackbar_text) as TextView
val font = Typeface.createFromAsset(context.assets, "your_font.ttf")
tv.typeface = font
y llámalo como:
mSnakeBar.changeFont()