snack example custom bar android android-snackbar

android - example - snackbar material design



¿Cómo evitar que el texto de mi snackbar sea truncado en Android? (3)

Lo que es importante y no se indica en otras respuestas es que necesita usar la vista de Snackbar .

Asi que:

Snackbar snackbar = Snackbar.make(rootView, R.string.message, Snackbar.LENGTH_LONG); View snackbarView = snackbar.getView(); TextView snackTextView = (TextView) snackbarView .findViewById(android.support.design.R.id.snackbar_text); snackTextView.setMaxLines(2); snackbar.show();

Nota: esto también puede ayudar con dispositivos con menor densidad de pantalla

Estoy mostrando un snackbar con un mensaje de texto bastante largo y en el teléfono, en modo vertical, se ve bien.

Pero en la tableta parece que solo permite 1 línea de texto por lo que obtiene elipsis-ed

¿Hay de todos modos puedo hacer que sea 2 líneas en el panorama de la tableta?


Puede hacer referencia al TextView de SnackBar de esta manera:

TextView tv = (TextView) view.findViewById(android.support.design.R.id.snackbar_text);

Y luego opere en el mismo TextView cambiando sus líneas máximas:

tv.setMaxLines(3)


Un ejemplo más detallado y detallado con contexto sería este:

// Create on click listener final OnClickListener positiveButtonClickListener = new OnClickListener() { @Override public void onClick(View v) { // Do your action - e.g. call GooglePlay to update app openGooglePlayAppUpdate(); } }; // Create snack bar instance Snackbar sBar = Snackbar.make(findViewById(R.id.some_view_to_bind), // You bind here e.g. layout, or form view R.string.snack_bar_message, Snackbar.LENGTH_INDEFINITE) // Set text and action to the snack bar .setAction(android.R.string.ok, positiveButtonClickListener); // Now get text view of your snack bar ... TextView snckBarTv = (TextView) offerUpdate.getView().findViewById(android.support.design.R.id.snackbar_text); snckBarTv.setMaxLines(5); // ... and set max lines sBar.show(); // and finally display snack bar !