Comecei a usar o novo Snackbar na Biblioteca de Suporte a Design, mas descobri que quando você define "android: textColor" em seu tema, ele se aplica à cor do texto da barra de ferramentas. Obviamente, isso é um problema se a cor primária do texto for escura.
Alguém conhece uma maneira de contornar isso ou tem algum conselho sobre como devo colorir meu texto?
EDITAR janeiro de 2017: (Pós-resposta)
Embora existam algumas soluções personalizadas para corrigir o problema abaixo, provavelmente é bom fornecer a maneira correta de criar Snackbars de tema.
Em primeiro lugar, você provavelmente não deveria definir android:textColor
seus temas (a menos que realmente conheça o escopo do que está usando o tema). Isso define a cor do texto de basicamente todas as visualizações que se conectam ao seu tema. Se você deseja definir cores de texto em suas visualizações que não são padrão, use android:primaryTextColor
e faça referência a esse atributo em suas visualizações personalizadas.
No entanto, para aplicar temas a Snackbar
, consulte este guia de qualidade de um documento de material de terceiros: http://www.materialdoc.com/snackbar/ (Siga a implementação do tema programático para que não dependa de um estilo xml)
Para referência:
// 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);
(Você também pode criar seus próprios Snackbar
layouts personalizados , consulte o link acima. Faça-o se este método parecer muito hacky e você quiser uma maneira confiável de manter seu Snackbar personalizado por último por meio de possíveis atualizações da biblioteca de suporte).
Em alternativa, consulte as respostas abaixo para obter respostas semelhantes e talvez mais rápidas para resolver o seu problema.
android:textColorPrimary