Wie man die Unterstützungsbibliothek snackbar Textfarbe zu etwas anderem als Android setzt: textColor?
Also habe ich angefangen mit der neuen Snackbar in der Design-Support-Bibliothek, aber ich fand, dass, wenn Sie definieren "android:textColor" in Ihr Thema, es gilt für die text-Farbe der snackbar. Das ist natürlich ein problem, wenn Ihre primäre Textfarbe ist dunkel.
Kennt jemand eine Möglichkeit, um dieses oder Ratschläge, wie ich die Farbe sollte mein text?
BEARBEITEN. Januar 2017: (Post-Antwort)
Zwar gibt es einige maßgeschneiderte Lösungen, um das problem zu beheben unten, es ist wahrscheinlich gut, um die richtige Weg, um Design Snackbars sowie.
Erstens, Sie wahrscheinlich sollte nicht sein definieren android:textColor
in Ihren Themen an alle (es sei denn, Sie wirklich wissen, den Umfang dessen, was mit dem Thema). Dies setzt die Farbe des Textes, der im Grunde jeden anzeigen, dass eine Verbindung zu Ihrem Thema. Möchten Sie einen text definieren, der Farben in Ihren Ansichten, die sind nicht Standard, dann verwenden Sie android:primaryTextColor
- und Referenz-Attribut in Ihren benutzerdefinierten Ansichten.
Jedoch für die Anwendung Themen zu Snackbar
Lesen Sie bitte dieses Qualität-guide aus einem Dritten material-doc: http://www.materialdoc.com/snackbar/ (Folgen die programmatische Thema Umsetzung haben es nicht verlassen sich auf eine xml-Stil)
Referenz:
//create instance
Snackbar snackbar = Snackbar.make(view, text, duration);
//set action button color
snackbar.setActionTextColor(getResources().getColor(R.color.indigo));
//get snackbar view
View snackbarView = snackbar.getView();
//change snackbar text color
int snackbarTextId = android.support.design.R.id.snackbar_text;
TextView textView = (TextView)snackbarView.findViewById(snackbarTextId);
textView.setTextColor(getResources().getColor(R.color.indigo));
//change snackbar background
snackbarView.setBackgroundColor(Color.MAGENTA);
(Sie können auch erstellen Sie Ihre eigenen benutzerdefinierten Snackbar
layouts zu finden Sie unter dem oben genannten link. So zu tun, wenn diese Methode fühlt sich zu hacky und Sie wollen einen sicherlich zuverlässigen Weg, um Ihre benutzerdefinierten Snackbar zuletzt durch die Unterstützung Bibliothek-updates).
Sowie alternativ finden Sie die Antworten unten für ähnliche und vielleicht schneller Antworten, um Ihr problem zu lösen.
InformationsquelleAutor der Frage Mahonster | 2015-06-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß, das wurde bereits beantwortet, aber der einfachste Weg, ich fand, war direkt in die Nutzung der
Html.fromHtml
Methode und einefont
tagInformationsquelleAutor der Antwort JPM
Fand ich diese bei Was sind die neuen features der Android-Design-Support-Bibliothek und wie Sie mithilfe der Snackbar?
Dieser arbeitete für mich für die änderung der Textfarbe in eine Snackbar.
InformationsquelleAutor der Antwort Jarod Young
Okay, so habe ich es behoben, indem im wesentlichen die Reorganisation der Art, wie ich text-Farben.
In meinem Thema Licht, ich
android:textColorPrimary
zu dennormal dark text
ich wollte, und ichandroid:textColor
zuwhite
.Ich aktualisiert, alle meine text-Ansichten und Schaltflächen
android:textColor="?android:attr/textColorPrimary".
So, weil snackbar zieht aus
textColor
ich habe gerade alle meine anderen text zutextColorPrimary
.BEARBEITEN. JANUAR 2017: ----------------------------------------------------
So, wie die Kommentare sagen, und wie bereits in der bearbeiteten ursprünglichen Frage oben, sollte man wohl nicht definieren
android:textColor
in Ihren Designs, wie diese änderungen der text-Farbe von jeder Blick in das Thema.InformationsquelleAutor der Antwort Mahonster
Erstellt dieser kotlin-extention-Funktion benutze ich in meinen Projekten:
Nutzung wie man es erwarten würde:
InformationsquelleAutor der Antwort Richard
Hacken
android.support.design.R.id.snackbar_text
ist zerbrechlich, eine bessere oder weniger hacky Weg, dies zu tun werden:InformationsquelleAutor der Antwort Jet Zhao
Ein Ansatz ist die Verwendung umfasst:
Spannweiten können Sie auch mehrere Farben und Stile, die innerhalb einer Snackbar. Hier ist eine schöne Anleitung:
https://androidbycode.wordpress.com/2015/06/06/material-design-snackbar-using-the-design-support-library/
InformationsquelleAutor der Antwort ulcica
Die einzige Möglichkeit die ich sehe ist mit
getView()
- und Radtouren durch Ihr Kind. Ich weiß nicht, ob es funktionieren wird, und es ist schlimm, wie es aussieht. Ich hoffe, Sie werden hinzufügen einige API-über dieses Problem bald.InformationsquelleAutor der Antwort natario
Dies ist, was ich verwenden, wenn ich brauche, benutzerdefinierte Farben
Und konsumiert werden wie:
InformationsquelleAutor der Antwort makata
Änderte ich mein Thema
zu
Funktionierte es.Versuchen Sie, mit einfachen Themen und nicht von Licht oder anderen Thema.
InformationsquelleAutor der Antwort Pavneet_Singh
Können Sie diese Bibliothek verwenden: https://github.com/SandroMachado/restaurant
Disclaimer: ich habe die Bibliothek.
InformationsquelleAutor der Antwort Sandro Machado
Ich habe einen einfachen code, der helfen wird, um eine Instanz der sowohl die textview der Snackbar, danach können Sie alle Methoden, die anwendbar sind auf ein textview.
InformationsquelleAutor der Antwort Summved Jain
Nur um zu sparen Ihre kostbare Entwicklungszeit, hier ist die statische Methode, die ich benutze:
Dies ist, wie es aussieht:
InformationsquelleAutor der Antwort Ifta
Wenn Sie in Kotlinkönnen Sie eine Erweiterung :
Nutzung :
InformationsquelleAutor der Antwort Phil
Habe ich auch bemerkt, das gleiche problem. Dank der Antworten hier habe ich eine kleine Klasse, die helfen können, dieses problem zu lösen, in einfacher, nur durch ersetzen dieser:
mit dabei:
Hier ist meine Klasse:
}
InformationsquelleAutor der Antwort Dr. Failov