Ich habe also angefangen, die neue Snackbar in der Design Support Library zu verwenden, aber ich habe festgestellt, dass die Definition von "android: textColor" in Ihrem Thema für die Textfarbe der Snackbar gilt. Dies ist offensichtlich ein Problem, wenn Ihre primäre Textfarbe dunkel ist.
Kennt jemand einen Weg, um dies zu umgehen, oder hat er Ratschläge, wie ich meinen Text einfärben soll?
BEARBEITEN Januar 2017: (Post-Answer)
Es gibt zwar einige benutzerdefinierte Lösungen, um das unten stehende Problem zu beheben, aber es ist wahrscheinlich gut, die richtige Methode zum Thema Snackbars bereitzustellen.
Erstens sollten Sie android:textColor
Ihre Themen wahrscheinlich überhaupt nicht definieren (es sei denn, Sie wissen wirklich, in welchem Umfang das Thema verwendet wird). Dadurch wird die Textfarbe praktisch jeder Ansicht festgelegt, die mit Ihrem Thema verbunden ist. Wenn Sie Textfarben in Ihren Ansichten definieren möchten, die nicht Standard sind, verwenden Sie android:primaryTextColor
dieses Attribut in Ihren benutzerdefinierten Ansichten und verweisen Sie darauf.
Informationen zum Anwenden von Themen Snackbar
finden Sie in diesem Qualitätsleitfaden aus einem Materialdokument eines Drittanbieters: http://www.materialdoc.com/snackbar/ (Befolgen Sie die Implementierung des programmatischen Themas, damit es nicht auf einem XML-Stil basiert.)
Als 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 Ihre eigenen benutzerdefinierten Snackbar
Layouts erstellen, siehe den obigen Link. Tun Sie dies, wenn sich diese Methode zu hackig anfühlt und Sie eine sicher zuverlässige Möglichkeit suchen, Ihre benutzerdefinierte Snackbar durch mögliche Aktualisierungen der Support-Bibliothek dauerhaft zu erhalten.)
Alternativ finden Sie in den Antworten unten ähnliche und möglicherweise schnellere Antworten zur Lösung Ihres Problems.
android:textColorPrimary