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?

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)

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.