Стиль 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 :)