2015-08-26 12 views
19

Ich zeige eine Snackbar mit einer ziemlich langen Textnachricht und am Telefon im Hochformat sieht es gut aus.Wie kann ich verhindern, dass mein Snackbar-Text auf Android abgeschnitten wird?

Phone Portrait mode

Aber auf der Tablette scheint es nur 1 Zeile Text zu ermöglichen, so dass es Ellipsen-ed

Tablet Landscape mode

sowieso Gibt es bekommt kann ich es 2 Linie in Form von Tabletten zu sein Landschaft?

+3

gemäß der Design-Richtlinien Büffets sollten nicht viel Text enthalten kann helfen, eine snackbar sollte eine einzige kleine Zeile angezeigt Text. https://www.google.com/design/spec/components/snackbars-toasts.html# ein Dialog ist hier besser geeignet – tyczj

Antwort

23

können Sie die Textview die SnackBar Referenz wie folgt aus:

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

Und dann arbeiten auf der Textview sich durch seine max Linien zu ändern:

tv.setMaxLines(3) 
+2

Kann nicht auf die SnackBar TextView zugreifen. Ich bekomme NULL von dieser Aussage. –

+1

@zulkarnainshah schau auf meine Antwort - Ich habe dort alles geklärt –

3

Eine aufwendigere und gründliche Beispiel mit Kontext wäre Dies ist:

7

Was ist wichtig und nicht in anderen Antworten angegeben ist, dass Sie müssen Snackbar Ansicht verwenden.

So:

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(); 

Hinweis: Dies auch mit Geräten mit niedriger Rasterdichte

Verwandte Themen