Collapsible-Calendar-View-Android

Collapsible CalendarView in simple calendar view which can be collapsed to save space and can be expanded when needed.

Collapsible-Calendar-View-Android

Installation

  • Gradle

    Add it in your root build.gradle at the end of repositories:

    allprojects {
    		repositories {
    			...
    			maven { url 'https://jitpack.io' }
    		}
    	}
    

    Add the dependency in your app build.gradle

    dependencies {
    		implementation 'com.github.shrikanth7698:Collapsible-Calendar-View-Android:v1.0.0'
    	}
    
  • Maven

    Add the JitPack repository to your build file

    <repositories>
    	<repository>
    	    <id>jitpack.io</id>
    	    <url>https://jitpack.io</url>
    	</repository>
    </repositories>
    

    Add the dependency

    <dependency>
        <groupId>com.github.shrikanth7698</groupId>
        <artifactId>Collapsible-Calendar-View-Android</artifactId>
        <version>v1.0.0</version>
    </dependency>
    

Usage

Drop the Collapsible CalendarView in your XML layout as is shown below:

    <com.shrikanthravi.collapsiblecalendarview.widget.CollapsibleCalendar
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:id="@+id/calendarView">
    </com.shrikanthravi.collapsiblecalendarview.widget.CollapsibleCalendar>

And then in your Activity or fragment

final CollapsibleCalendar collapsibleCalendar = findViewById(R.id.calendarView);
        collapsibleCalendar.setCalendarListener(new CollapsibleCalendar.CalendarListener() {
            @Override
            public void onDaySelect() {
                Day day = viewCalendar.getSelectedDay();
                Log.i(getClass().getName(), "Selected Day: "
                        + day.getYear() + "/" + (day.getMonth() + 1) + "/" + day.getDay());
            }

            @Override
            public void onItemClick(View view) {

            }

            @Override
            public void onDataUpdate() {

            }

            @Override
            public void onMonthChange() {

            }

            @Override
            public void onWeekChange(int i) {

            }
        });

Customization

           <com.shrikanthravi.collapsiblecalendarview.widget.CollapsibleCalendar
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:primaryColor="@color/google_red"
                app:textColor="@android:color/white"
                app:selectedItem_textColor="@color/google_red"
                app:todayItem_textColor="@android:color/white"
                app:todayItem_background="@drawable/circle_white_stroke_background"
                app:selectedItem_background="@drawable/circle_white_solid_background"
                app:buttonLeft_drawableTintColor="@android:color/white"
                app:buttonRight_drawableTintColor="@android:color/white"
                app:expandIconColor="@android:color/white">
          </com.shrikanthravi.collapsiblecalendarview.widget.CollapsibleCalendar>

GitHub