Стиль BottomSheet после использования темы MaterialComponents

Недавно я переключился на использование com.google.android.material:material:1.0.0 для темы приложения.

В дополнение к установке colorPrimary, colorPrimaryDark и colorAccent и использованию MaterialButton со стилем Widget.MaterialComponents.Button, кнопки в Activity/Fragment и bottomSheetFragment отличаются по цвету!

в Activity/Fragment все в порядке. но в BottomSheet имеет другой цвет (зеленый).

введите здесь описание изображения


comment
Каковы определенные цвета? Как определена ваша тема? Каков фактический результат? Каков ожидаемый результат?   -  person Eugen Pechanec    schedule 13.03.2019
comment
добавил скриншот к ответам на ваши вопросы. @EugenPechanec   -  person beigirad    schedule 13.03.2019


Ответы (1)


Определите новый стиль для BottomSheetDialogFragment:

 <style name="MyBottomSheetStyle" parent="@style/Theme.MaterialComponents.Light.BottomSheetDialog">
        <item name="colorPrimary">@color/primary</item>
        <item name="colorPrimaryDark">@color/primary_dark</item>
        <item name="colorAccent">@color/accent</item>
 </style>

Вы можете применить его через тему приложения, установив его как bottomSheetDialogTheme в основном стиле приложения:

<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
    ...

    <item name="bottomSheetDialogTheme">@style/MyBottomSheetStyle</item>
</style>

или переопределите getTheme() в вашем классе нижнего листа.

override fun getTheme(): Int = R.style.MyBottomSheetStyle

Если вы выберете второй, лучше использовать базовый класс и реализовать на нем getTheme().

person beigirad    schedule 13.03.2019
comment
после применения пользовательского стиля нижнего листа это выглядит странно. После добавления атрибутов цвета все работает хорошо. - person Khay Leang; 11.06.2021
comment
@KhayLeang Я не могу получить доступ к исходному скриншоту спустя годы. но я улучшил свой ответ. - person beigirad; 11.06.2021