J'essaie d'ajouter un CalendarView dans mon application, qui utilise le thème Theme.Light. Le problème est que les nombres de jours de ce calendrier sont affichés en blanc, donc lorsque vous utilisez un thème clair, vous ne pouvez pas les voir.
En ce moment, j'ai le code suivant dans mon fichier de disposition XML:
<CalendarView
Android:id="@+id/calendar1"
Android:layout_width="500dp"
Android:layout_height="300dp"/>
J'ai essayé de forcer le thème du calendrier comme ceci:
<CalendarView
Android:id="@+id/calendar1"
Android:layout_width="500dp"
Android:layout_height="300dp"
Android:theme="@Android:style/Theme.Light" />
Mais cela ne change rien. Je pense que je devrais faire quelque chose avec la propriété Android: dateTextAppearance, j'ai donc essayé ceci:
<CalendarView
Android:id="@+id/calendar1"
Android:layout_width="500dp"
Android:layout_height="300dp"
Android:dateTextAppearance="@Android:style/TextAppearance.Large.Inverse" />
mais ça ne fait rien non plus.
Des idées ?
Merci !
Dans mon projet, j'ai défini l'attribut "Android: calendarViewStyle" dans mon thème.
<style name="Theme.Custom" parent="@Android:Theme">
<item name="Android:calendarViewStyle">@style/Widget.CalendarView.Custom</item>
</style>
<style name="Widget.CalendarView.Custom" parent="Android:Widget.CalendarView">
<item name="Android:focusedMonthDateColor">@color/cs_textcolor</item>
<item name="Android:weekNumberColor">@color/red</item>
<item name="Android:weekDayTextAppearance">@style/TextAppearance.Medium</item>
<item name="Android:dateTextAppearance">@style/TextAppearance.Medium</item>
</style>
Toutes les possibilités de styles sont:
remarque: si showWeekNumber ne fonctionne pas comme style xml, vous pouvez définir le code avec setShowWeekNumber (true).
J'ai aussi eu beaucoup de mal. Bien que n'étant pas parfait, et je n'ai pas compris comment modifier chaque aspect, je me suis approché. Voici comment je l'ai fait, dans le styles.xml du projet, j'ai ajouté ces styles:
<style name="CalenderViewCustom" parent="Theme.AppCompat">
<item name="colorAccent">@color/white_30</item>
</style>
<style name="CalenderViewDateCustomText" parent="Android:TextAppearance.DeviceDefault.Small">
<item name="Android:textColor">@color/white</item>
</style>
<style name="CalenderViewWeekCustomText" parent="Android:TextAppearance.DeviceDefault.Small">
<item name="Android:textColor">@color/white_30</item>
</style>
Ensuite, pour le CalendarView, j'ai référencé ces styles comme suit:
<CalendarView
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:theme="@style/CalenderViewCustom"
Android:dateTextAppearance="@style/CalenderViewDateCustomText"
Android:weekDayTextAppearance="@style/CalenderViewWeekCustomText"/>
Vous pouvez ajouter les autres types de couleurs (primaires/secondaires) à CalenderViewCustom ci-dessus.