A lightweight monthly calendar view for Android, fully written in Kotlin. Designed to meet the minimum demands for typical calendars.

Overview

Light Calendar View

Android Arsenal Release License

A lightweight monthly calendar view for Android, fully written in Kotlin. Designed to meet the minimum demands for typical calendars.

screenshot

Requirements

  • Target SDK version: 23
  • Minimum SDK version: 15

Usage

  1. Add these settings to your app-level build.gradle.
dependencies {
    compile 'jp.co.recruit_mp:LightCalendarView:1.0.1'
}
  1. Add LightCalendarView into your layouts or view hierarchy.
<layout xmlns:android="http://schemas.android.com/apk/res/android">
    ...
        <jp.co.recruit_mp.android.lightcalendarview.LightCalendarView
            android:id="@+id/calendarView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    ...
</layout>

Customization

Options

Lightweight Calendar View can be easily customized by setting properties in the layout XML file.

    <jp.co.recruit_mp.android.lightcalendarview.LightCalendarView
        android:id="@+id/calendarView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:lcv_weekDayTextSize="18sp"
        app:lcv_dayTextSize="18sp"
        app:lcv_textColor="@color/calendar_day_text"
        app:lcv_selectionColor="@color/calendar_selection"
        app:lcv_accentColor="@color/calendar_accent"/>

The following properties are available:

property name type description
app:lcv_weekDayTextSize dimension The text size of weekdays
app:lcv_dayTextSize dimension The text size of days
app:lcv_textColor color or resource The text color of weekdays and days
app:lcv_selectionColor color or resource The background color of selections
app:lcv_accentColor color or resource The color of accents
app:lcv_firstDayOfWeek integer The first day of the week (0 = Sunday, 1 = Monday, ..., 6 = Friday)

The customizations of text colors of selected days or today are done by setting <selector /> color resources to app:lcv_textColor, app:lcv_selectionColor, or app:lcv_accentColor with the following resource files for example.

NOTE that in all of the color resources, android:state_* are used to distinguish the state of each day view as follows:

state description
android:state_active indicates whether the day view is for today (true) or other days (false)
android:state_selected indicates whether the day view is selected (true) or not (false)

/res/color/calendar_day_text.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- the color of today when selected -->
    <item android:color="#ffd2d2" android:state_active="true" android:state_selected="true" />

    <!-- the color of today -->
    <item android:color="#c417ce" android:state_active="true" />

    <!-- the color of the selected day -->
    <item android:color="#ffffff" android:state_selected="true" />

    <!-- the color of other days -->
    <item android:color="#7c7c7c" />
</selector>

/res/color/calendar_selection.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- the background color of today when selected -->
    <item android:color="#3944ba" android:state_active="true" android:state_selected="true" />

    <!-- the background color of the other days when selected -->
    <item android:color="#565656" android:state_selected="true" />
</selector>

/res/color/calendar_accent.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- the color of accents in today when selected -->
    <item android:color="#ffd2d2" android:state_active="true" android:state_selected="true" />

    <!-- the color of accents in today -->
    <item android:color="#c417ce" android:state_active="true" />

    <!-- the color of accents in other days when selected -->
    <item android:color="#ffffff" android:state_selected="true" />

    <!-- the color of accents in other days -->
    <item android:color="#7c7c7c" />
</selector>

OnCalendarStateUpdatedListener

Add OnCalendarStateUpdatedListener to the calendar view to detect and handle the following events:

  • onSelectMonth(): the user swipes and changes the month
  • onSelectDay(): the user clicks one day in a month view

See the example implementation in MainActivity.kt of this listener on github.

Decorations

Use MonthView#setAccents(Date, Collection<Accent>) or MonthView#setAccents(Map<Date, Collection<Accent>>) to add decorations to each day.

Example:

calendarView.setOnStateUpdatedListener(object : LightCalendarView.OnStateUpdatedListener {
    override fun onMonthSelected(date: Date, view: MonthView) {
        val cal = Calendar.getInstance().apply { time = date }
        val monthEvents: Map<Date, List<Event>> = someApi.getMonthEvents(cal[Calendar.YEAR], cal[Calendar.MONTH])
        val monthAccents: Map<Date, List<Accent>> = monthEvents.mapValues { event -> DotAccent(radius = 10f, color = event.color, key = event) }
        view.setAccents(monthAccents)
    }
}

Coloring Day of The Week

Use LightCalendarView#setWeekDayFilterColor(weekDay: WeekDay, color: Int?) and LightCalendarView#setDayFilterColor(weekDay: WeekDay, color: Int?) to set the color scheme of day of the week in WeekDayView (e.g. Sunday, Monday, ...) and DayView (e.g. 1, 2, ...) respectively.

// coloring "sunday" (day of the week) in red
calendarView.setWeekDayFilterColor(WeekDay.SUNDAY, Color.RED)

// coloring sundays (days) in red
calendarView.setDayFilterColor(WeekDay.SUNDAY, Color.RED)

Note the library internally uses these color as ColorFilter, meaning it is overlayed on top of the text color set through LightCalendarView#setTextColor(color: Int).

Further Customizations

See the Wiki for more information and descriptions on futher customizations.

Contributing

Contributions to this library, including bug-reporting, bug-fixes, and enhancements are always welcomed. Just create an issue, fork us and send a pull request.

License

Copyright 2016 RECRUIT MARKETING PARTNERS CO., LTD.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Maintainers

Light Calendar View is owned and maintained by Recruit Marketing Partners Co., Ltd, and was originally created by

Comments
  • Does not work with KitKat (SDK 19)

    Does not work with KitKat (SDK 19)

    E/AndroidRuntime: FATAL EXCEPTION: main Process: newage.anthony.atjara, PID: 10694 java.lang.RuntimeException: Unable to start activity ComponentInfo{newage.anthony.atjara/newage.anthony.atjara.EventCalendar.EventCalendarActivity}: android.view.InflateException: Binary XML file line #9: Error inflating class jp.co.recruit_mp.android.lightcalendarview.LightCalendarView at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2318) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396) at android.app.ActivityThread.access$800(ActivityThread.java:139) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1293) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:149) at android.app.ActivityThread.main(ActivityThread.java:5257) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609) at dalvik.system.NativeStart.main(Native Method) Caused by: android.view.InflateException: Binary XML file line #9: Error inflating class jp.co.recruit_mp.android.lightcalendarview.LightCalendarView at android.view.LayoutInflater.createView(LayoutInflater.java:620) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696) at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) at android.view.LayoutInflater.inflate(LayoutInflater.java:492) at android.view.LayoutInflater.inflate(LayoutInflater.java:397) at android.view.LayoutInflater.inflate(LayoutInflater.java:353) at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:143) at newage.anthony.atjara.EventCalendar.EventCalendarActivity.onCreate(EventCalendarActivity.java:18) at android.app.Activity.performCreate(Activity.java:5411) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396)  at android.app.ActivityThread.access$800(ActivityThread.java:139)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1293)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:149)  at android.app.ActivityThread.main(ActivityThread.java:5257)  at java.lang.reflect.Method.invokeNative(Native Method)  at java.lang.reflect.Method.invoke(Method.java:515)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)  at dalvik.system.NativeStart.main(Native Method)  Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.constructNative(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at android.view.LayoutInflater.createView(LayoutInflater.java:594) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)  at android.view.LayoutInflater.inflate(LayoutInflater.java:492)  at android.view.LayoutInflater.inflate(LayoutInflater.java:397)  at android.view.LayoutInflater.inflate(LayoutInflater.java:353)  at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284)  at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:143)  at newage.anthony.atjara.EventCalendar.EventCalendarActivity.onCreate(EventCalendarActivity.java:18)  at android.app.Activity.performCreate(Activity.java:5411)  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396)  at android.app.ActivityThread.access$800(ActivityThread.java:139)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1293)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:149)  at android.app.ActivityThread.main(ActivityThread.java:5257)  at java.lang.reflect.Method.invokeNative(Native Method)  at java.lang.reflect.Method.invoke(Method.java:515)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)  at dalvik.system.NativeStart.main(Native Method)  Caused by: java.lang.UnsupportedOperationException: Can't convert to color: type=0x5 at android.content.res.TypedArray.getColor(TypedArray.java:327) at jp.co.recruit_mp.android.lightcalendarview.ContextExtensionsKt.getStyledColor(ContextExtensions.kt:29) at jp.co.recruit_mp.android.lightcalendarview.CalendarSettings$DayView.initializedTodayCirclePaint(CalendarSettings.kt:139) at jp.co.recruit_mp.android.lightcalendarview.CalendarSettings$DayView.(CalendarSettings.kt:136) at jp.co.recruit_mp.android.lightcalendarview.CalendarSettings.(CalendarSettings.kt:32) at jp.co.recruit_mp.android.lightcalendarview.LightCalendarView.(LightCalendarView.kt:36) at jp.co.recruit_mp.android.lightcalendarview.LightCalendarView.(LightCalendarView.kt:74) at jp.co.recruit_mp.android.lightcalendarview.LightCalendarView.(LightCalendarView.kt:73) at java.lang.reflect.Constructor.constructNative(Native Method)  at java.lang.reflect.Constructor.newInstance(Constructor.java:423)  at android.view.LayoutInflater.createView(LayoutInflater.java:594)  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)  at android.view.LayoutInflater.inflate(LayoutInflater.java:492)  at android.view.LayoutInflater.inflate(LayoutInflater.java:397)  at android.view.LayoutInflater.inflate(LayoutInflater.java:353)  at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284)  at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:143)  at newage.anthony.atjara.EventCalendar.EventCalendarActivity.onCreate(EventCalendarActivity.java:18)  at android.app.Activity.performCreate(Activity.java:5411)  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396)  at android.app.ActivityThread.access$800(ActivityThread.java:139)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1293)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:149)  at android.app.ActivityThread.main(ActivityThread.java:5257)  at java.lang.reflect.Method.invokeNative(Native Method)  at java.lang.reflect.Method.invoke(Method.java:515)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)  at dalvik.system.NativeStart.main(Native Method) 

    opened by AnthonyTjio 5
  • Add feature to change first day of the week

    Add feature to change first day of the week

    Overview

    Adding a feature to change first day of the week (e.g. Sunday, Monday, etc...)

    References

    Technical Changes

    • added the method LightCalendarView#setFirstDayOfWeek(weekDay: WeekDay)
    • added lcv_firstDayOfWeek to the layout parameters
    • modified WeekDayLayout and DayLayout to rearrange child views in the correct order
    • added val firstDayOfWeek: WeekDay setting to CalendarSettings

    Remaining Tasks

    • [x] update README.md

    Screenshot

    screenshot_1481423037

    Reviewer

    • @amyu
    opened by recruit-mahayash 4
  • setAccents does not work for different time zones

    setAccents does not work for different time zones

    I have three dates in PST time zone: Dec 27, Dec 01, Dec 13 When I call setAccents they get set on Dec 26, Nov 30, Dec 12

    val map = mutableMapOf<Date, Collection<Accent>>().apply {
        calendarMap.forEach { entry ->
            val (date, list) = entry
            val keyDate = dateFormatter.parse(date)
            Log.v(TAG, keyDate.toString())
            put(keyDate, list.map { value ->
                DotAccent(10f, key = value.startDate)
            })
        }
    }
    monthView?.setAccents(map)
    
    12-12 16:48:01.108 6864-6864/? V/MainActivity: Tue Dec 27 00:00:00 PST 2016
    12-12 16:48:01.108 6864-6864/? V/MainActivity: Thu Dec 01 00:00:00 PST 2016
    12-12 16:48:01.108 6864-6864/? V/MainActivity: Tue Dec 13 00:00:00 PST 2016
    

    If I switch my phone time zone to Tokyo time, it will show on the right dates.

    bug 
    opened by andytung 2
  • Dot Accents not displaying correctly

    Dot Accents not displaying correctly

    Hi,

    I am having trouble with dots displaying in my calendar that I present in a DialogFragment.

    screen1

    this is what I get immediately after I open the dialog

    screen2

    and this is what happens after I swipe one month left and then back to the current month.

    Both days have two dots attached to them, all different colors. On the first picture, the second dots in an array for that day are shown (partially out of frame) and when I swipe away and return to the current month the first dots are shown below the dates but slightly offset.

    This happens only in my dialog fragment. When I load the calendar in a normal fragment/activity everything is fine.

    This has occurred on 3 separate devices running APIs 19, 22 & 23.

    opened by TomislavHorvat1 1
  • Days keep staying selected

    Days keep staying selected

    Hi guys, I have a minor issue and I hope you could help me with it. I think it will be best if I explain in an example:

    1. select 23.2.2017 - onDateSelected with correct date is called and everything is working like it should
    2. swipe to March of 2017
    3. select let's say 15.3.2017 - onDateSelected with 15.3 is called but date 23.2 in previous MonthView stays selected
    4. swipe to February of 2017 and day 23.2 in step 1 is still selected even though I selected another date in the meantime

    Is this normal behviour, and if so how can i disable it ? I'd like to all but the date from arguments in onDateSelected to be deselect.

    Thanks, Daniel

    opened by daniel-micic 1
  • Adding feature to set the text color of each day of the week

    Adding feature to set the text color of each day of the week

    Overview

    Adding feature to set the text color of each day of the week (e.g. Sunday, Monday, etc...)

    Technical Changes

    • added methods LightCalendarView#setWeekDayFilterColor(weekDay: WeekDay, color: Int?) and LightCalendarView#setDayFilterColor(weekDay: WeekDay, color: Int?)
    • added val textFilterColorMap: MutableMap<WeekDay, Int?> setting to CalendarSettings.WeekDayView and CalendarSettings.DayView

    Remaining Tasks

    • [ ] add layout attributes
    • [ ] update README.md

    Screenshot

    screenshot_1481609325

    Reviewer

    @amyu

    opened by recruit-mahayash 1
  • Highlight Multiple Days as

    Highlight Multiple Days as "selected"

    Hello, how to show multiple days as "selected"? I need to show others dates if the selected monthView as highlighted, I found two options..

    1. Customize Accent class (How to draw accent as a whole day circle alike when other day is selected)
    2. Set multiple days as selected. (No api found for that)

    Please help!!

    opened by rehan-malik 0
  • [add] added properties for fixing the circle of today

    [add] added properties for fixing the circle of today

    Overview

    Added properties for fixing the circle of today. When the property is set to ON, the circle is always displayed.

    Technical Changes

    • added property CalendarSettings#fixToday
    opened by opst-miyatay 0
  • [add] added feature to display days of outside this month

    [add] added feature to display days of outside this month

    Overview

    Adding feature to display days of outside this month

    Thechnical Changes

    • added attribute lcv_outsideTextColor
    • added property CalendarSettings#displayOutside
    opened by opst-miyatay 0
  • Doesn't support dynamic size

    Doesn't support dynamic size

    Doesn't support dynamic size defined by layout_weight="1", reproduced in LinearLayout container when I want to set dynamic width by half width of screen.

    opened by iBog 0
  • Highlight Multiple Days

    Highlight Multiple Days

    Hello, how to show multiple days as "selected"? I need to show others dates if the selected monthView as highlighted, I found two options..

    1. Customize Accent class (How to draw accent as a whole day circle alike when other day is selected)
    2. Set multiple days as selected. (No api found for that)

    Please help!!

    opened by sjd753 0
  • Error inflating class jp.co.recruit_mp.android.lightcalendarview.MonthView noSuchMethodException

    Error inflating class jp.co.recruit_mp.android.lightcalendarview.MonthView noSuchMethodException

    I am receiving a noSuchMethodException when trying to inflate the month view. It's easy to reproduce with a blank project and adding this view to the main activity:

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout
    	xmlns:android="http://schemas.android.com/apk/res/android"
    	xmlns:app="http://schemas.android.com/apk/res-auto"
    	xmlns:tools="http://schemas.android.com/tools"
    	android:layout_width="match_parent"
    	android:layout_height="match_parent"
    	tools:context="com.thomascoook.testbed.MainActivity">
    
    	<jp.co.recruit_mp.android.lightcalendarview.MonthView
    		android:layout_width="match_parent"
    		android:layout_height="wrap_content">
    
    	</jp.co.recruit_mp.android.lightcalendarview.MonthView>
    
    </android.support.constraint.ConstraintLayout>
    

    Here is the part of the stack trace that I believe is important:

    Caused by: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class jp.co.recruit_mp.android.lightcalendarview.MonthView
    Caused by: android.view.InflateException: Binary XML file line #0: Error inflating class jp.co.recruit_mp.android.lightcalendarview.MonthView
    Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android.util.AttributeSet]
    

    And when I look at the source code for your view I can see the problem is you are not supplying the required constructors as per this StackOverflow post and and my own experience: https://stackoverflow.com/questions/11753719/how-do-i-properly-extend-a-layout-class.

    The library class in question:

    /**
     * 月カレンダーを表示する {@link LinearLayout}
     * Created by masayuki-recruit on 8/19/16.
     */
    class MonthView(context: Context, private val settings: CalendarSettings, var month: Date) : LinearLayout(context), DayLayout.Callback {
    
        internal var callback: Callback? = null
    
        private val weekDayLayout: WeekDayLayout
        private val dayLayout: DayLayout
    
        init {
            orientation = LinearLayout.VERTICAL
    
            weekDayLayout = WeekDayLayout(context, settings)
            addView(weekDayLayout, LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT))
    
            dayLayout = DayLayout(context, settings, month).apply { callback = this@MonthView }
            addView(dayLayout, LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT))
        }
    
        override fun onDateSelected(date: Date) {
            callback?.onDateSelected(date)
        }
    
        fun setSelectedDate(date: Date) {
            dayLayout.setSelectedDay(date)
        }
    
        fun setAccents(date: Date, accents: Collection<Accent>) = dayLayout.let {
            it.getDayView(date)?.setAccents(accents)
            it.invalidateDayViews()
        }
    
        fun setAccents(map: Map<Date, Collection<Accent>>) {
            map.forEach { it ->
                val (date, accents) = it
                dayLayout.getDayView(date)?.setAccents(accents)
            }
            dayLayout.invalidateDayViews()
        }
    
        interface Callback {
            fun onDateSelected(date: Date)
        }
    
        override fun toString(): String = "MonthView(${month})"
    }
    

    Here is the full stack trace:

    11-08 12:26:16.061 4539-4539/com.thomascoook.testbed E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.thomascoook.testbed, PID: 4539
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.thomascoook.testbed/com.thomascoook.testbed.MainActivity}: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class jp.co.recruit_mp.android.lightcalendarview.MonthView
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
    at android.app.ActivityThread.-wrap12(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:154)
    at android.app.ActivityThread.main(ActivityThread.java:6077)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
    Caused by: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class jp.co.recruit_mp.android.lightcalendarview.MonthView
    Caused by: android.view.InflateException: Binary XML file line #0: Error inflating class jp.co.recruit_mp.android.lightcalendarview.MonthView
    Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android.util.AttributeSet]
    at java.lang.Class.getConstructor0(Class.java:2204)
    at java.lang.Class.getConstructor(Class.java:1683)
    at android.view.LayoutInflater.createView(LayoutInflater.java:618)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:787)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:858)
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:377)
    at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
    at com.thomascoook.testbed.MainActivity.onCreate(MainActivity.kt:10)
    at android.app.Activity.performCreate(Activity.java:6662)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
    at android.app.ActivityThread.-wrap12(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:154)
    at android.app.ActivityThread.main(ActivityThread.java:6077)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
    
    
    opened by ThomasCookDeveloperInfo 0
Releases(1.0.1)
  • 1.0.1(Jan 13, 2017)

    Change Log

    • Added feature: change day of the week to start from (e.g. Sunday, Monday, ...)
    • Added feature: set text color filter onto individual day of the week
    • Added feature: explicitly set timezone and locale to use in the library
    • fixed bug: 1st day of a months may not be shown correctly
    • fixed bug: does not work with KitKat (SDK 19)
    • added a sample implementation in Java
    Source code(tar.gz)
    Source code(zip)
Owner
Recruit Marketing Partners Co.,Ltd
Recruit Marketing Partners Co.,Ltd
Android Week View is an android library to display calendars (week view or day view) within the app. It supports custom styling.

Android Week View Android Week View is an android library to display calendars (week view or day view) within the app. It supports custom styling. Fea

Raquib-ul Alam (Kanak) 3.4k Jan 3, 2023
Fully customizable Calendar/DatePicker for Android/Kotlin

AMCalendar - Android Date (Range) Picker AMCalendar is a fully customisable widget for picking dates and ranges based on the native Calendar. It's an

null 6 Oct 18, 2022
Kalendar - A calendar to integrate Calendar with Custom design in your jetpack compose project

Kalendar - An Elementary Compose Calendar. This is a calendar to integrate Calen

Himanshu Singh 494 Jan 2, 2023
Standalone Android widget for picking a single date from a calendar view.

TimesSquare for Android Standalone Android widget for picking a single date from a calendar view. Usage Include CalendarPickerView in your layout XML.

Square 4.4k Dec 20, 2022
An android library which provides a compact calendar view much like the one used in google calenders.

CompactCalendarView CompactCalendarView is a simple calendar view which provides scrolling between months. It's based on Java's Date and Calendar clas

SundeepK 1.5k Dec 9, 2022
Android calendar view (like card)

android-calendar-card (Google Play Demo) Android calendar view (like card) Simple and easy to modify Author: Michał Szwarc #CalendarCardPager License

Michał Szwarc 473 Nov 10, 2022
A better calendar for Android

Caldroid Caldroid is a fragment that display calendar with dates in a month. Caldroid can be used as embedded fragment, or as dialog fragment. User ca

Roomorama 1.4k Jan 5, 2023
CalEF (Calendar Entry Formatter) : Select an entry in Android-Kalender and send/share the entry's content as human readable text.

CalEF (Calendar Entry Formatter) Select an entry in Android-Kalender and send/share the entry's content as human readable text. Usually calendar entri

k3b 6 Aug 17, 2022
📅 Material Design Calendar compatible with API 11+

> Prettier and simpler Material Design CalendarView MaterialCalendarView is a prettier and simpler, material design calendar that allows full customiz

BlackBox Vision 365 Nov 21, 2022
📅 Material Design Calendar compatible with API 11+

> Prettier and simpler Material Design CalendarView MaterialCalendarView is a prettier and simpler, material design calendar that allows full customiz

BlackBox Vision 366 Jan 1, 2023
A TimelineView that will help you create event timelines in apps just like the Google Calendar DayView

TimelineView A TimelineView that will help you create event timelines in apps just like the Google Calendar DayView A library that allows you to creat

Amit Krishna A 10 May 12, 2022
JetCalendarView - A calendar library for Jetpack Compose

JetCalendar WIP 2022 Hit Refresh! Calendar view ❤️ Jetpack Compose License Copyr

Anmol Verma 8 Aug 17, 2022
A date time range picker for android written in Kotlin

DateTimeRangePicker A date time range picker for android Usage Firstly, grab latest release of the library via JitPack. And note that, it utilizes Jod

SkedGo 501 Dec 31, 2022
A material-styled android view that provisions picking of a date, time & recurrence option, all from a single user-interface.

SublimePicker A customizable view that provisions picking of a date, time & recurrence option, all from a single user-interface. You can also view 'Su

Vikram 2.3k Jan 4, 2023
Jetlime - A simple library for TimeLine view in Android

JetLime ⏱️ A simple yet highly customizable library for showing a TimeLine view

Pushpal Roy 107 Dec 6, 2022
Color-My-View-App - Layouts - ColorMyViews app

Layouts - ColorMyViews app This is the second toy app for lesson 2 of the Androi

null 0 Jan 7, 2022
Android interval timer app using compose + compose navigation, dagger hilt, room, kotlin coroutines + flow and mvvm design pattern.

What's InTime? ⏳ InTime is an interval timer application using android jetpack components and a long running service. The purpose of this project is t

P. 46 Oct 10, 2022
Time-DatePicker - A Simple Time Date Picker With Kotlin

Time-DatePicker Time.DatePicker.mp4

Faysal Hossain 0 Jan 19, 2022
A Material design back port of Android's CalendarView

Material Calendar View A Material design back port of Android's CalendarView. The goal is to have a Material look and feel, rather than 100% parity wi

Prolific Interactive 5.8k Jan 5, 2023