Как изменить цвет «MaterialDatePicker» в режиме клавиатуры, а также можно скрыть этот режим в Android? - PullRequest
1 голос
/ 29 мая 2020

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

Как изменить тему «MaterialDatePicker» в Android? enter image description here

1 Ответ

1 голос
/ 29 мая 2020

Это не очень ответ.

В настоящее время (1.2.0-beta01) там не метод настройки только вида в SingleDateSelector.
Он основан на этом макете который не раскрывает никакого стиля.

Это стандартный TextInputLayout, который наследуется от атрибута textInputStyle, определенного в теме вашего приложения. В теме «Компоненты материала по умолчанию» он определяется как Widget.MaterialComponents.TextInputLayout.FilledBox и основан на:

  • цвете фона (boxBackgroundColor атрибут): colorOnSurface
  • цвете подчеркивания (boxStrokeColor атрибут) colorPrimary (сфокусировано) и colorOnSurface (другие состояния)

Вы можете изменить стиль по умолчанию все TextInputLayout s в вашем приложении, используя textInputStyle в теме вашего приложения.

 <style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
   .... 
   <item name="textInputStyle">@style/My_FilledBox</item>
 </style>

 <style name="My_FilledBox" parent="@style/Widget.MaterialComponents.TextInputLayout.FilledBox">
     ...
  </style>

пропало


Нет способа скрыть переключатель в заголовке, но есть обходной путь (он может перестать работать в будущих выпусках):

builder.setTheme(R.style.MyMaterialCalendarTheme);

с:

 <style name="MyMaterialCalendarTheme" parent="ThemeOverlay.MaterialComponents.MaterialCalendar">
    <!-- HeaderToggleButton -->
    <item name="materialCalendarHeaderToggleButton">@style/HeaderToggleButton1</item>
 </style>

  <style name="HeaderToggleButton1" parent="@style/Widget.MaterialComponents.MaterialCalendar.HeaderToggleButton">
    <item name="android:visibility">gone</item>
  </style>

enter image description here

...