Quindi ho iniziato a utilizzare la nuova Snackbar nella libreria di supporto alla progettazione, ma ho scoperto che quando definisci "android: textColor" nel tuo tema, si applica al colore del testo della snackbar. Questo è ovviamente un problema se il colore del testo principale è scuro.
Qualcuno sa come aggirare questo o ha consigli su come dovrei colorare il mio testo?
EDIT gennaio 2017: (post-risposta)
Sebbene ci siano alcune soluzioni personalizzate per risolvere il problema di seguito, è probabilmente utile fornire il modo corretto per temi Snackbars.
In primo luogo, probabilmente non dovresti definire affatto i android:textColor
tuoi temi (a meno che tu non conosca veramente l'ambito di ciò che sta usando il tema). Questo imposta il colore del testo praticamente di ogni vista che si collega al tuo tema. Se desideri definire colori del testo nelle visualizzazioni che non sono predefinite, utilizza android:primaryTextColor
e fai riferimento a tale attributo nelle visualizzazioni personalizzate.
Tuttavia, per applicare temi a Snackbar
, fare riferimento a questa guida alla qualità da un documento di materiale di terze parti: http://www.materialdoc.com/snackbar/ (seguire l'implementazione del tema programmatico per non fare affidamento su uno stile xml)
Per riferimento:
// 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);
(Puoi anche creare i tuoi Snackbar
layout personalizzati , vedi il link sopra. Fallo se questo metodo sembra troppo hacker e vuoi un modo sicuramente affidabile per far durare il tuo Snackbar personalizzato attraverso eventuali aggiornamenti della libreria di supporto).
In alternativa, vedi le risposte di seguito per risposte simili e forse più veloci per risolvere il tuo problema.
android:textColorPrimary