Code Monkey home page Code Monkey logo

calendarviewpager's Introduction

CalendarViewPager

Download

Simple and free customize calendar view.

Sample

  • Horizontal paging calendars
  • Customizable day cell
  • Click and change pager listeners

Setup

Require Android 5.0+

Add build.gradle

implementation 'jp.kuluna:calendarviewpager:2.0.0'

Simple Usage

layout

<jp.kuluna.calendarviewpager.CalendarViewPager
  android:id="@+id/calendar_view_pager"
  android:layout_width="match_parent"
  android:layout_height="match_parent" />

MainActivity.kt

val viewPager = findViewById<CalendarViewPager>(R.id.calendar_view_pager)
viewPager.adapter = CalendarPagerAdapter(this)

Customize

Override CalendarPagerAdapter

class CustomCalendarAdapter(context: Context) : CalendarPagerAdapter(context) {
    override fun onCreateView(parent: ViewGroup, viewType: Int): View {
        return LayoutInflater.from(context).inflate(R.layout.view_calendar_cell, parent, false)
    }

    override fun onBindView(view: View, day: Day) {
        if (day.state == DayState.ThisMonth) {
            view.visibility = View.VISIBLE
            view.findViewById<TextView>(R.id.text_day).text = day.calendar.get(Calendar.DAY_OF_MONTH).toString()
            view.findViewById<View>(R.id.view_dot).visibility = if (day.isSelected) View.VISIBLE else View.GONE
        } else {
            view.visibility = View.INVISIBLE
        }
    }
}
// setup adapter
val viewPager = findViewById<CalendarViewPager>(R.id.calendar_view_pager)
viewPager.adapter = CustomCalendarAdapter(this)

// listeners
viewPager.onDayClickListener = { day: Day ->
  Toast.makeText(this, day.calendar.time.toString(), Toast.LENGTH_SHORT).show()
}

viewPager.onDayLongClickListener = { day: Day ->
    Toast.makeText(this, "Long Clicked :" + day.calendar.time.toString(), Toast.LENGTH_SHORT).show()
    true
}

viewPager.onCalendarChangeListener = { calendar: Calendar ->
    Toast.makeText(this, calendar.time.toString(), Toast.LENGTH_SHORT).show()
}

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

License

MIT License.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.