Итак, я начал использовать новую Snackbar в библиотеке поддержки дизайна, но обнаружил, что когда вы определяете «андроид: textColor» в своей теме, это относится к цвету текста закутки. Это, очевидно, проблема, если ваш основной цвет текста темный.Как установить цвет текста библиотеки закуски для библиотеки, отличной от android: textColor?
Кто-нибудь знает способ обойти это или есть советы о том, как я должен покрасить мой текст?
EDIT января 2017: (Post-ответ)
Хотя есть некоторые пользовательские решения, чтобы исправить эту проблему ниже, это, вероятно, хорошо, чтобы обеспечить правильный путь к теме закусочные.
Во-первых, вы, вероятно, не должны определять android:textColor
в своих темах вообще (если только вы не знаете масштаб того, что использует тему). Это устанавливает цвет текста в основном для каждого вида, который соединяется с вашей темой. Если вы хотите определить цвета текста в своих представлениях, которые не являются стандартными, используйте android:primaryTextColor
и укажите этот атрибут в своих пользовательских представлениях.
Однако для применения темы к Snackbar
, пожалуйста, ссылка на этот качественный гид из материала третьей стороной документа: http://www.materialdoc.com/snackbar/ (Следуйте программную реализацию темы, чтобы не полагаться на стиле XML)
Для справки:
// 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);
(вы также можете создать свой собственный Snackbar
макетов тоже увидеть ссылку выше. Сделайте так, если этот метод кажется слишком Hacky, и вы хотите, безусловно, надежный способ иметь свой обычай закусочная последние через возможные обновления библиотеки поддержки).
И, альтернативно, см. Ответы ниже для получения похожих и, возможно, более быстрых ответов для решения вашей проблемы.
Я предпочитаю это решение, так как это одна строка. –
Это не реальное решение этого вопроса. Использование: snackbar.setActionTextColor (Color.WHITE) .show(); –
В настройке «Закусочная» была/была ошибка, цвет ничего не сделал. Этот способ работает независимо от того, но не может быть оптимальным решением для других. – JPM