Изменить цвет текста «Месяц» в CalendarView - PullRequest
3 голосов
/ 09 марта 2020

Я рассмотрел несколько вариантов установки textColor с помощью различных тегов с помощью пользовательской темы, но ни один из них, похоже, не работает. Я приложил скриншоты для справки. Вот пользовательская тема, которую я использую, когда тема приложения - Dark.

<style name="CalendarWeekDateTextDark" parent="TextAppearance.AppCompat.Button">
    <item name="android:textColor">@color/colorWhite</item>
</style>

, и я использовал ее в файле XML как

<CalendarView
    android:id="@+id/calendarView"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:dateTextAppearance="?attr/CalendarWeekDatTextDark"
    android:weekDayTextAppearance="?attr/CalendarWeekDatTextDark"
    app:layout_constraintBottom_toTopOf="@+id/bottomGuideline"
    app:layout_constraintEnd_toEndOf="@+id/endGuideline"
    app:layout_constraintStart_toStartOf="@+id/startGuideline"
    app:layout_constraintTop_toBottomOf="@+id/topGuideline" />

Скриншоты:

1 Ответ

0 голосов
/ 13 марта 2020

Определив следующее в styles.xml:

<style name="CustomCalendarMonth" parent="AppTheme">
    <item name="android:textColorPrimary">@color/orange</item>
</style>

<style name="CustomCalendarDay" parent="TextAppearance.MaterialComponents.Caption">
    <item name="android:textColor">@color/green</item>
</style>

<style name="CustomCalendarWeek" parent="TextAppearance.MaterialComponents.Caption">
    <item name="android:textColor">@color/purple</item>
</style>

Затем в xml:

<CalendarView
    android:theme="@style/CustomCalendarMonth"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:dateTextAppearance="@style/CustomCalendarDay"
    android:weekDayTextAppearance="@style/CustomCalendarWeek" />

Здесь будет вывод:

...