2017-10-11 4 views
-1

J'essaye de faire une vue de calendrier semblable à celle-ci. Une avec la semaine de défilement horizontal et la liste des événements en dessous de la date sélectionnée.Comment faire une vue de calendrier avec vue de défilement horizontal

J'ai essayé d'utiliser cette bibliothèque https://github.com/prolificinteractive/material-calendarview mais l'apparence n'est pas la même. Le calendrier consomme beaucoup d'espace à l'écran puisque le nom du jour et les dates sont si éloignés. Comment puis-je faire semblable à celui-ci ci-dessous?

Merci

enter image description here

+1

Hey Mwas, votre question semble un peu large, pourriez-vous être un peu plus précis? Cherchez-vous essentiellement à construire une liste déroulante horizontalement des jours de la semaine avec peut-être une liste d'événements pour ce jour ci-dessous? – Brian

+0

oui. Exactement, c'est ce que j'essaie de faire. Permettez-moi de modifier ma question – Mwas

Répondre

2

utiliser cette bibliothèque ,,,

compile 'devs.mulham.horizontalcalendar:horizontalcalendar:1.1.7' 

et ce xml

<devs.mulham.horizontalcalendar.HorizontalCalendarView 
          android:id="@+id/calendarView" 
          android:layout_width="match_parent" 
          android:layout_height="wrap_content" 
          android:background="#FAFAFA" 
          app:selectedDateBackground="#00ffffff" 
          app:selectorColor="#c62828" 
          app:textColorNormal="#bababa" 
          app:textColorSelected="@color/blue_color" 
          app:textSizeDayName="20sp" 
          app:textSizeDayNumber="20sp" /> 

et ici Java

private HorizontalCalendar horizontalCalendar; 

    Calendar endDate = Calendar.getInstance(); 
     endDate.add(Calendar.MONTH, 1); 
     Calendar startDate = Calendar.getInstance(); 
     startDate.add(Calendar.MONTH, -1); 

     horizontalCalendar = new HorizontalCalendar.Builder(root, R.id.calendarView) 
       .startDate(startDate.getTime()) 
       .endDate(endDate.getTime()) 
       .datesNumberOnScreen(5) 
       .dayNameFormat("EEE") 
       .dayNumberFormat("dd") 
       .monthFormat("MMM") 
       .textSize(14f, 24f, 14f) 
       .showDayName(true) 
       .showMonthName(true) 

       .build(); 

     horizontalCalendar.setCalendarListener(new HorizontalCalendarListener() { 
      @Override 
      public void onDateSelected(Date date, int position) { 
//    Toast.makeText(getContext(), DateFormat.getDateInstance().format(date) + " is selected!", Toast.LENGTH_SHORT).show(); 
      } 

     }); 
+0

Tout code Java pour me lancer? Je me rends compte que cela ne fonctionne pas directement hors de la boîte – Mwas

+0

ok je vais modifier ma réponse, mais s'il vous plaît accepter! –

+0

Cela fonctionne. Merci Moayed – Mwas