Cambiar la tipografía del snackbar
Yo construyo snackbar con este código:
Snackbar sb = Snackbar.make(drawer, "message", Snackbar.LENGTH_LONG) .setAction("action", new View.OnClickListener() { @Override public void onClick(View view) { } });
Ahora quiero cambiar el tipo de letra del mensaje y botón de acción, pero no puede encontrar ninguna solución, ¿Cómo hacer eso?
- ¿Mostrar Android SnackBar encima del teclado?
- Android - Snackbar vs Toast - uso y diferencia
- No se muestra la barra de merienda
- Snackbar: cómo identificar qué snackbar se muestra
- Cómo mostrar Emoticons / Emoji en Snackbar o Toast / Textview
- Cómo descartar una Snackbar con su propio botón de acción?
- Vista en pantalla completa de pantalla oculta snackbar
- Evitar que Snackbar descarte en acción.
- ¿Hay alguna forma de agregar un icono a una Snackbar?
- ¿Podemos realizar 2 acciones diferentes en Snack bar al mismo tiempo en android?
Usted puede fijar TypeFace consiguiendo la visión de la barra de Snack
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);
Estilizar el texto y la acción del Snackbar
Puede utilizar el mismo método para snackbar_text
el snackbar_text
y el snackbar_action
.
Una vez que haya creado una barra de menús, puede utilizar lo siguiente para obtener las Vistas asociadas con el texto y la acción y luego aplicar los ajustes 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, he configurado la Acción para que tenga tamaño de letra 20 y Negrita, y el Texto sea de tamaño 16 y permita hasta 3 líneas.
Obtener la vista de snack bar y aplicar la personalización
TextView tv = (TextView) sb.getView().findViewById(android.support.design.R.id.snackbar_text); tv.setTextColor(Color.WHITE); tv.setTypeface(Typeface.createFromAsset( getAssets(), "fonts/ur_file.ttf"));
O esto
SpannableStringBuilder snackbarText = new SpannableStringBuilder(); snackbarText.append("Add "); int boldStart = snackbarText.length(); snackbarText.append("bold color"); snackbarText.setSpan(new ForegroundColorSpan(0xFFFF0000), boldStart, snackbarText.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); snackbarText.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), boldStart, snackbarText.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); snackbarText.append(" to Snackbar text"); Snackbar.make(view, snackbarText, Snackbar.LENGTH_LONG).show();
O puedes echar un vistazo a esto y esto .
Gracias.
Obtener activos
AssetManager assets = context.getAssets();
Obtener tipo de letra
Typeface typeface = Typeface.createFromAsset(assets,PATH OF .TTF FILE);
Ruta de acceso: font / robotoregular.ttf (si el archivo .ttf se almacena en la ruta assets / font)