Стиль SnackBar в приложении темы
Мне нужна помощь. Как изменить дизайн текста в snackbar в приложении стилей? Изменение кода меня не интересует. Я нашел следующий код. Но это не работает для меня. Почему это? Моя тема получена из @style/Theme.AppCompat.Light.DarkActionBar ". Я был бы очень благодарен за помощь.
<style name="TextAppearance.Design.Snackbar.Message" parent="android:TextAppearance">
<item name="android:textSize">10sp</item>
<item name="android:textColor">#FEFEFE</item>
</style>
<style name="TextAppearance.Design.Snackbar.Action" parent="android:TextAppearance">
<item name="android:textSize">16sp</item>
<item name="android:textColor">#FEFEFE</item>
</style>
Ответы
Ответ 1
вам нужно это: tools:override="true"
<resources xmlns:tools="http://schemas.android.com/tools">
<style name="TextAppearance.Design.Snackbar.Message" parent="android:TextAppearance" tools:override="true">
<item name="android:textColor">@color/text</item>
<item name="android:textSize">50sp</item>
</style>
</resources>
Ответ 2
2018 новый способ:
https://materialdoc.com/components/snackbars-and-toasts/#with-code
//создать экземпляр
Snackbar snackbar = Snackbar.make(view, text, duration);
//установить цвет кнопки действия
snackbar.setActionTextColor(getResources().getColor(R.color.indigo));
//получить вид закусочной
View snackbarView = snackbar.getView();
//меняем цвет текста закусочной
int snackbarTextId = android.support.design.R.id.snackbar_text;
TextView textView = (TextView)snackbarView.findViewById(snackbarTextId);
textView.setTextColor(getResources().getColor(R.color.indigo));
//изменить фон закусочной
snackbarView.setBackgroundColor(Color.MAGENTA);
Ответ 3
Я копался в источниках Snackbar, и вот, что я нашел, фон Snackbar состоит из 2 слоев: базовый и оверлейный, цвета которого смешиваются.
Чтобы указать эти цвета, просто добавьте к своим параметрам темы 2:
colorSurface - цвет фона, по умолчанию = 0xFFFFFFFF
colorOnSurface - наложение, по умолчанию = 0xFF000000
Таким образом, в случае по умолчанию мы получаем цвет 0xFF333333, который находится посередине между белым и черным.
Получайте удовольствие, смешивая и стилизовав свой Snackbar :)