Ich möchte die Aktionstextfarbe für meine Snackbar ändern, sie funktioniert jedoch aus irgendeinem Grund nicht.
Ich verwende den folgenden Code, um eine Snackbar anzuzeigen:
Snackbar.make(findViewById(R.id.root), "text", Snackbar.LENGTH_LONG).setActionTextColor(R.color.yellow).setAction("OK", new View.OnClickListener() {
@Override
public void onClick(View view) {
}
}).show();
Das Argument von setActionTextColor
ist das int
, das die Farbe und nicht die Ressourcen-ID darstellt.
An Stelle von:
.setActionTextColor(R.color.yellow)
versuchen:
.setActionTextColor(Color.YELLOW)
Wenn Sie trotzdem Ressourcen verwenden möchten, versuchen Sie Folgendes:
.setActionTextColor(ContextCompat.getColor(context, R.color.color_name));
Hinweis: Um ContextCompat verwenden zu können, haben Sie vermutlich die Support-Bibliothek in Ihr build.gradle
Datei (Optional, wenn Sie bereits eine appcompat (v7) Bibliothek haben).
Verwenden
.setActionTextColor(getResources().getColor(R.color.red))
statt nur
.setActionTextColor(R.color.red)
Keine der obigen Antworten hat mir geholfen. Ich habe diese Lösung gefunden und sie funktioniert, indem ich die Textfarbe des TextView manuell ändere
Snackbar snack = Snackbar.make(v, "Snackbar message", Snackbar.LENGTH_LONG);
View view = snack.getView();
TextView tv = (TextView) view.findViewById(Android.support.design.R.id.snackbar_text);
tv.setTextColor(Color.WHITE);
snack.show();