Así que comencé a usar la nueva Snackbar en la Biblioteca de soporte de diseño, pero descubrí que cuando define "android: textColor" en su tema, se aplica al color del texto de la snackbar. Obviamente, esto es un problema si el color de su texto principal es oscuro.
¿Alguien sabe cómo evitar esto o tiene algún consejo sobre cómo debo colorear mi texto?
EDITAR enero de 2017: (Post-respuesta)
Si bien existen algunas soluciones personalizadas para solucionar el problema a continuación, probablemente sea bueno proporcionar la forma correcta de tema Snackbars.
En primer lugar, probablemente no debería definir android:textColor
sus temas en absoluto (a menos que realmente sepa el alcance de lo que está usando el tema). Esto establece el color del texto de básicamente todas las vistas que se conectan a su tema. Si desea definir colores de texto en sus vistas que no sean los predeterminados, utilice android:primaryTextColor
y haga referencia a ese atributo en sus vistas personalizadas.
Sin embargo, para aplicar temas a Snackbar
, consulte esta guía de calidad de un documento de material de terceros: http://www.materialdoc.com/snackbar/ (Siga la implementación del tema programático para que no dependa de un estilo xml)
Para referencia:
// 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);
(También puede crear sus propios Snackbar
diseños personalizados , consulte el enlace anterior. Hágalo si este método se siente demasiado engañoso y desea una forma segura y confiable de tener su Snackbar personalizado al final a través de posibles actualizaciones de la biblioteca de soporte).
Y, alternativamente, vea las respuestas a continuación para obtener respuestas similares y quizás más rápidas para resolver su problema.
android:textColorPrimary