Вы не можете использовать AppCompat
темы с MaterialComponents
представлениями.
Если вы не готовы полностью перейти на тему MaterialComponents
, вы можете использовать ту же тему моста. Хотя использование темы моста не рекомендуется. В своей официальной документации они говорят:
Выполнение миграции всего приложения путем изменения темы приложения для наследования от
тема Материальных компонентов - рекомендуемый подход. Однако быть
обязательно тщательно протестировать впоследствии, как компоненты в существующих макетах
может изменить свою внешность и поведение.
Примечание. Если вы не можете изменить тему, вы можете выполнить одно из следующих действий:
Наследовать от одной из наших тем Bridge Material Components. Увидеть
Раздел Темы моста для более подробной информации. Продолжать наследовать от
Тема AppCompat и добавьте некоторые новые атрибуты темы в вашу тему. Увидеть
раздел «Compat Themes» для более подробной информации.
Вы можете использовать темы мостов Материальных компонентов, добавив .Bridge
перед MaterialComponents
названием темы.
например.
Theme.MaterialComponents.*.Bridge
В вашем случае это будет Theme.MaterialComponents.Light.NoActionBar.Bridge
Несмотря на то,
Если вы хотите продолжать использовать темы AppCompat
, вам нужно добавить следующие несколько атрибутов в вашу текущую тему, или она выдаст Theme Enforcement Error
, который вы получаете прямо сейчас.
<item name="colorPrimaryVariant">@color/my_app_primary_variant_color</item>
<item name="colorSecondaryVariant">@color/my_app_secondary_variant_color</item>
<item name="colorSurface">@color/my_app_surface_color</item>
<item name="colorOnPrimary">@color/my_app_color_on_primary</item>
<item name="colorOnSecondary">@color/my_app_color_on_secondary</item>
<item name="colorOnBackground">@color/my_app_color_on_background</item>
<item name="colorOnError">@color/my_app_color_on_error</item>
<item name="colorOnSurface">@color/my_app_color_on_surface</item>
<item name="scrimBackground">@color/mtrl_scrim_color</item>
<item name="textAppearanceHeadline1">@style/TextAppearance.MaterialComponents.Headline1</item>
<item name="textAppearanceHeadline2">@style/TextAppearance.MaterialComponents.Headline2</item>
<item name="textAppearanceHeadline3">@style/TextAppearance.MaterialComponents.Headline3</item>
<item name="textAppearanceHeadline4">@style/TextAppearance.MaterialComponents.Headline4</item>
<item name="textAppearanceHeadline5">@style/TextAppearance.MaterialComponents.Headline5</item>
<item name="textAppearanceHeadline6">@style/TextAppearance.MaterialComponents.Headline6</item>
<item name="textAppearanceSubtitle1">@style/TextAppearance.MaterialComponents.Subtitle1</item>
<item name="textAppearanceSubtitle2">@style/TextAppearance.MaterialComponents.Subtitle2</item>
<item name="textAppearanceBody1">@style/TextAppearance.MaterialComponents.Body1</item>
<item name="textAppearanceBody2">@style/TextAppearance.MaterialComponents.Body2</item>
<item name="textAppearanceCaption">@style/TextAppearance.MaterialComponents.Caption</item>
<item name="textAppearanceButton">@style/TextAppearance.MaterialComponents.Button</item>
<item name="textAppearanceOverline">@style/TextAppearance.MaterialComponents.Overline</item>
Вам необходимо добавить эти атрибуты в текущую тему AppCompat
.