Итак, я начал использовать новую панель закусок в библиотеке поддержки дизайна, но обнаружил, что когда вы определяете "android: textColor" в своей теме, он применяется к цвету текста панели закусок. Очевидно, это проблема, если ваш основной цвет текста темный.
Кто-нибудь знает способ обойти это или есть совет, как мне раскрасить текст?
ИЗМЕНИТЬ Январь 2017: (Пост-ответ)
Несмотря на то, что есть несколько индивидуальных решений для устранения проблемы, указанной ниже, вероятно, было бы хорошо предоставить правильный способ оформления Snackbars.
Во-первых, вам, вероятно, вообще не следует определять 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
макеты, см. Ссылку выше. Сделайте это, если этот метод кажется слишком хакерским и вам нужен надежный способ продлить срок службы пользовательской панели Snackbar с помощью возможных обновлений библиотеки поддержки).
Или посмотрите ответы ниже, чтобы найти похожие и, возможно, более быстрые ответы для решения вашей проблемы.
android:textColorPrimary