Изменение цвета выбранных дат в виджете CalendarView для Android

Как мне изменить цвет выбранного дня в виджете CalendarView, предоставляемом Android. Кажется, я не нахожу пути в документации.

Я могу изменить VerticalBars с помощью атрибута setSelectedDateVerticalBar, но я хочу установить цвет фона, как показано на этом рисунке.

Я хочу установить цвет и внешний вид, как показано слева, но все, что я могу получить, это изображение справа. Библиотека CalendarView так плохо построена?

Любая помощь с благодарностью.

2 ответа

Там нет никакого способа сделать то, что вы пытаетесь достичь в настоящее время. Представление календаря очень ограничено в своей функциональности.

Смотрите это: Изменить стиль Calendar View

Вы можете изменить выбранный цвет даты, создав селектор.

создайте файл селектора: your_selector.xml

      <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_activated="true" android:color="@color/white" />
    <item android:color="@color/color_black" />
</selector>

Используйте свой селектор в стиле:

      <style name="CalenderViewDateCustomText">
        <item name="colorControlNormal">@color/white</item>
        <item name="colorControlActivated">@color/white</item>
        <item name="colorControlHighlight">@color/white</item>
        <item name="android:textColor">@drawable/your_selector</item>
    </style>

используйте его в представлении календаря:

      <CalendarView
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:theme="@style/CalenderViewCustom"
 android:dateTextAppearance="@style/CalenderViewDateCustomText"                        
 android:weekDayTextAppearance="@style/CalenderViewWeekCustomText"
 app:layout_constraintEnd_toEndOf="parent"
 app:layout_constraintStart_toStartOf="parent"
 app:layout_constraintTop_toTopOf="parent" />

пример календаря

Другие вопросы по тегам