2016-07-11 1 views
2

Screenshot J'essaie d'utiliser CalendarView dans mon application. Tous les mois sont affichés en continu. Quelqu'un peut-il m'aider à afficher uniquement le mois en cours et également choisir différents mois?Affichage du calendrier Android. Mois affiché en continu

<CalendarView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/calendarView" 
      android:layout_marginTop="80dp" 
      android:layout_marginLeft="20dp" /> 
+0

Qu'est-ce que cela veut dire "les mois sont affichés en continu"? –

+0

J'ai ajouté une capture d'écran dans ma question. Veuillez regarder dans ce lien –

+0

@fredrickcyril [vérifier] (https://github.com/gongmingqm10/awesome-calendar) ceci. – Nisarg

Répondre

1

Je trouve qu'il est causé par la hauteur du CalendarView, si vous définissez cette façon android:layout_height="wrap_content" votre calendrier montrera les mois jusqu'à ce qu'il y a de l'espace disponible. Essayez de définir une hauteur de 200dp ou placez-la dans une disposition linéaire/relative avec une hauteur.

Mise à jour

<CalendarView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

enter image description here

<CalendarView 
     android:layout_width="wrap_content" 
     android:layout_height="200dp" /> 

enter image description here

C'est la différence entre l'utilisation wrap_content ou 200dp en hauteur. Vous pouvez également définir les dates min et max pour le même mois et, si vous en avez besoin, vous pouvez modifier le min/max par programmation.

<CalendarView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:minDate="11/01/2016" 
     android:maxDate="11/30/2016"/> 

Remarque: cette solution de contournement 2 est pour Android L, de M vous n'avez pas besoin de cela.

+0

cette solution ne fonctionne pas. –

+0

Désolé mais cette question n'est pas la vôtre, pourquoi dites-vous que cela ne fonctionne pas? J'essaye ceci et travaille pour moi –

+0

Moi aussi fais face à ce problème et ai essayé votre solution. Ca n'a pas marché –

1

Définissez la date minimale et la date maximale pour l'affichage du calendrier de façon à afficher uniquement le mois en cours.

Calendar currentCalendarView = Calendar.getInstance(); 
Calendar calendar = currentCalendarView; 
calendar.set(Calendar.DAY_OF_MONTH,currentCalendarView.getActualMinimum(Calendar.DAY_OF_MONTH)); 
calendarView.setMinDate(calendar.getTimeInMillis()); 
calendar.set(Calendar.DAY_OF_MONTH, currentCalendarView.getActualMaximum(Calendar.DAY_OF_MONTH)); 
calendarView.setMaxDate(calendar.getTimeInMillis());