как настроить цвета и другие параметры средства выбора диапазона дат компонента материала?

Как я могу изменить цвет заголовка только в средстве выбора диапазона дат, я искал, не нашел точно, как, я просто знаю, как изменить цвет всего средства выбора диапазона дат с изменением цвета colorPrimary, и это изменит цвет всего заголовок и выбранные даты, я хочу изменить только цвет заголовка

а также, если есть способ изменить размер текста заголовка, я знаю, что мы можем изменить заголовок, но можем ли мы изменить размер заголовка?

это то, что я пробовал в стиле

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/shamrock_green</item>
    <item name="colorPrimaryDark">@color/shamrock_green_dark</item>
    <item name="colorAccent">@color/shamrock_green</item>
    <item name="colorButtonNormal">@color/shamrock_green</item>
    <item name="colorOnSecondary">@color/white</item>
    <item name="colorOnSurface">@android:color/transparent</item>
    <item name="bottomSheetDialogTheme">@style/AppBottomSheetDialogTheme</item>
    <item name="materialCalendarFullscreenTheme">@style/CustomThemeOverlay_MaterialCalendar_Fullscreen</item>

</style>

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="colorOnSurface">@android:color/black</item>
    <item name="colorPrimary">@color/black</item>
</style>

<style name="CustomThemeOverlay_MaterialCalendar_Fullscreen"
    parent="@style/ThemeOverlay.MaterialComponents.MaterialCalendar.Fullscreen">
    <item name="materialCalendarStyle">@style/Custom_MaterialCalendar.Fullscreen</item>
</style>
<style name="Custom_MaterialCalendar.Fullscreen"
    parent="@style/Widget.MaterialComponents.MaterialCalendar.Fullscreen">
    <item name="android:windowFullscreen">false</item>
    <item name="android:headerBackground">@color/shamrock_green</item>
</style>

<style name="ThemeMaterialCalendarButton" parent="Widget.MaterialComponents.Button.TextButton.Dialog">
    <item name="android:textColor">@color/shamrock_green</item>
</style>

<style name="ThemeMaterialCalendarTextButton" parent="Widget.MaterialComponents.Button.TextButton.Dialog.Flush">
    <item name="android:textColor">@color/shamrock_green</item>
    <item name="iconTint">@color/shamrock_green</item>
</style>

<style name="AppTheme.FullScreen" parent="@style/Theme.AppCompat">
    <item name="windowNoTitle">true</item>
    <item name="android:windowFullscreen">true</item>
</style>


</resources>

то, что сейчас работает, - это его отображение в виде диалогового окна, а не в полноэкранном режиме, которое я хочу, но не меняет цвета текста и фона, единственный способ изменить цвета - это изменить цвета, такие как colorPrimary, и эти цвета повлияют на все приложение


person Rooh Al-mahaba    schedule 17.06.2020    source источник
comment
Я думаю, вы ищете это.   -  person Lalit Fauzdar    schedule 17.06.2020
comment
@LalitFauzdar, извините, ссылка говорит о средстве выбора даты, я говорю о средстве выбора диапазона дат компонента материала   -  person Rooh Al-mahaba    schedule 17.06.2020


Ответы (1)


Вы можете использовать наложение темы:

MaterialDatePicker.Builder<Pair<Long, Long>> builderRange =
        MaterialDatePicker.Builder.dateRangePicker();
builderRange.setTheme(R.style.CustomMaterialCalendarTheme);

с участием:

  <style name="CustomMaterialCalendarTheme" parent="ThemeOverlay.MaterialComponents.MaterialCalendar">
       <!-- Header Layout -->
       <item name="materialCalendarHeaderLayout">@style/customHeaderLayout</item>
       <!-- Header title -->
       <item name="materialCalendarHeaderTitle">@style/customHeaderTitle</item>
       <!-- Header selection title -->
       <item name="materialCalendarHeaderSelection">@style/CustomHeaderSelection</item>
  </style>


   <style name="customHeaderLayout" parent="@style/Widget.MaterialComponents.MaterialCalendar.HeaderLayout">
      <item name="android:background">@color/.....</item>
   </style>

    <style name="customHeaderTitle" parent="@style/Widget.MaterialComponents.MaterialCalendar.HeaderTitle">
      <item name="android:textAppearance">@style/customTextAppearance</item>
    </style>

   <style name="customTextAppearance" parent="@style/TextAppearance.MaterialComponents.Overline">
      <item name="android:textSize">xxsp</item>
   </style>

   <style name="CustomHeaderSelection" parent="Widget.MaterialComponents.MaterialCalendar.HeaderSelection">
      <item name="android:textSize">xxsp</item>
   </style>

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

person Gabriele Mariotti    schedule 17.06.2020
comment
Как вы сделали фон календаря белым, как на картинке? - person IgorGanapolsky; 07.01.2021