web-dev-qa-db-fra.com

Android CalendarView pour afficher les événements

Je souhaite afficher un calendrier avec des événements utilisant des couleurs différentes à la date, similaire à l'application de calendrier par défaut. Mais je ne vois pas une telle API sur la vue par défaut du calendrier.

Quelqu'un peut-il m'indiquer la bonne direction à suivre? Dois-je étendre le calendrier par défaut et ajouter ma propre fonctionnalité? Ou dois-je utiliser des zones de texte 5x5 avec PageViewer et des fragments?

26
Karthik Andhamil

Le widget CalendarView intégré n'expose pas la possibilité de changer la couleur des cellules du calendrier dans la vue mensuelle. Voir la source .

Vous pouvez essayer les approches suivantes:

  1. Étendez-vous à partir de CalendarView et implémentez vous-même onDraw. Vous devrez réimplémenter tout le comportement de dessin existant, y compris ces 4 méthodes:

     protected void onDraw (Canvas canvas) {
     drawBackground (canvas); 
     drawWeekNumbersAndDates (canvas); 
     drawWeekSeparators (canvas); 
     drawSelectedDateVerticalBars ( Toile);
    }
    
  2. Implémentez votre propre CalendarView qui permet de personnaliser les cellules. Je suggère ce projet comme un bon endroit pour commencer, car il prend déjà en charge les cellules personnalisées.

19
nas

Le mois dernier, j'ai pu implémenter une petite vue de calendrier en utilisant Caldroid https://github.com/roomorama/Caldroid .

Il est flexible à utiliser et il n'est pas si difficile d'obtenir une vue de calendrier personnalisée que d'implémenter onDraw à partir de CalendarView.

Vérifiez la vue que j'ai créée (juste en suivant la documentation):

Custom calendar view using Caldroid

Et bien sûr, vous pouvez aller au-delà.

12
Alejandro Ocampo

J'ai écrit mon propre CalendarView un peu comme celui des calendriers Google également. Donne la possibilité de faire défiler les mois, les auditeurs, ajouter des événements et est un projet gradle: https://github.com/SundeepK/CompactCalendarView . Il utilise Paint pour faire tout le dessin, il devrait donc être facile de changer pour faire ce que vous voulez.

5
Sun

Le projet suivant est la meilleure alternative que j'ai vue jusqu'à présent pour permettre d'afficher des visuels spécifiques à un événement dans une cellule de date du calendrier:

https://github.com/tyczj/ExtendedCalendarView

4
Farrukh Najmi

Que diriez-vous de changer la couleur de certaines dates - en utilisant Android: dateTextAppearance et setDateTextAppearance (int)? Il a été décrit une fois: changer la couleur des dates du calendrier Android Vous pouvez essayer ceci

0
Maro