Отже, я почав використовувати нову закусочну в бібліотеці підтримки дизайну, але виявив, що коли ви визначаєте "android: textColor" у своїй темі, це стосується кольору тексту закусочної. Це очевидно проблема, якщо ваш основний колір тексту темний.
Хтось знає, як це обійти, чи має пораду, як мені розфарбувати текст?
EDIT січень 2017: (після відповіді)
Незважаючи на те, що є кілька власних рішень, щоб вирішити проблему нижче, можливо, добре надати правильний спосіб тематизації Снек-барів.
По-перше, вам, мабуть, взагалі не слід визначати 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