wake-up-neo.com

Snackbar-Aktionstextfarbe ändert sich nicht

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

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).

64
Anand Singh

Verwenden

.setActionTextColor(getResources().getColor(R.color.red))

statt nur

.setActionTextColor(R.color.red)
27
Adam Purser

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