J'ai donc commencé à utiliser le nouveau Snackbar dans la bibliothèque de support de conception, mais j'ai trouvé que lorsque vous définissez "android: textColor" dans votre thème, cela s'applique à la couleur du texte du snackbar. C'est évidemment un problème si la couleur de votre texte principale est sombre.
Quelqu'un connaît-il un moyen de contourner ce problème ou a-t-il des conseils sur la façon dont je dois colorer mon texte?
EDIT Janvier 2017: (Post-réponse)
Bien qu'il existe des solutions personnalisées pour résoudre le problème ci-dessous, il est probablement bon de fournir le bon moyen de thème Snackbars.
Premièrement, vous ne devriez probablement pas du tout définir android:textColor
vos thèmes (à moins que vous ne connaissiez vraiment la portée de ce qui utilise le thème). Cela définit la couleur du texte de pratiquement toutes les vues qui se connectent à votre thème. Si vous souhaitez définir des couleurs de texte dans vos vues qui ne sont pas par défaut, utilisez android:primaryTextColor
et référencez cet attribut dans vos vues personnalisées.
Cependant, pour appliquer des thèmes à Snackbar
, veuillez vous reporter à ce guide de qualité à partir d'un document tiers: http://www.materialdoc.com/snackbar/ (Suivez l'implémentation du thème programmatique pour qu'il ne repose pas sur un style xml)
Pour référence:
// 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);
(Vous pouvez également créer vos propres Snackbar
mises en page personnalisées , voir le lien ci-dessus. Faites-le si cette méthode vous semble trop piratée et que vous voulez un moyen sûrement fiable de faire durer votre Snackbar personnalisé à travers d'éventuelles mises à jour de la bibliothèque de support).
Et sinon, voir les réponses ci-dessous pour des réponses similaires et peut-être plus rapides pour résoudre votre problème.
android:textColorPrimary