안녕하세요 오늘은 달력 커스텀하기 2번째 시간입니다.
첫번째꺼는 android 에 있는데, 이건 kotlin 에 있는 이유는... 여긴 제가 처음부터 구현했기 때문에 kotlin을 사용해서입니다.
단순한 이유죠..
여튼 바로 시작할게요!!! 고생좀 하다보니 알게 되는 ... 스트레스가 다 풀렸어요! 화이팅!
우선 1번처럼
https://github.com/Applandeo/Material-Calendar-View
에서 library 만 import 합니다.
그런 다음엔 이제 가져다 쓸 일만 남았죠. 고생하셨습니다.
이러고 끝내고 싶ㄷ...
아니 절대 아니구요...
시작하겠습니다.
우선 xml에 아래와 같이 넣어줍니다.
<com.applandeo.materialcalendarview.CalendarView
android:id="@+id/calendar_month_cv_month"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:eventsEnabled="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:selectionColor="@color/black"
app:type="one_day_picker" />
이렇게 넣어준 뒤, 간단한 기능들은 위 주소에서 참고하세요!
이 캘린더는 특이하게,
바로 setOnCickListener가 가능합니다.
즉, calendar_month_cv_month.setOnClick~ 이게 가능한거죠
이렇게 설정하면, 원하는 날짜를 클릭했을 때의 event를 받아올 수 있습니다.
click 했을 때의 eventDay를 통해 클릭한 날짜를 받아와 원하는 이벤트를 구현하세요!
private fun monthlyCalendar() {
val calendarMin = Calendar.getInstance()
calendarMin.add(Calendar.DAY_OF_MONTH, -30)
val calendarMax = Calendar.getInstance()
calendarMax.add(Calendar.DAY_OF_MONTH, +30)
calendarView.setOnSampleReceivedEvent(this)
calendarView.setMinimumDate(calendarMin)
calendarView.setMaximumDate(calendarMax)
}
이런 방식을 통해 최소 날짜와 최대 날짜를 구현합니다.
예시로 앞 뒤로 30일 전후를 보이도록 했습니다.
setOnSampleRecivedEvent는 library 내에 있는 calendarView,java 의 viewPager,OnPagerChangeListener의 값을 받아와
textView에 .text하기 위해 구현한 콜백 리스너입니다 ㅎㅎ
또, calendarView에 .setEvent를 통해 원하는 이벤트 값을 넣어줄 수 있습니다.
이벤트 값은 List<EventDay> 형태로 넣어줘야 하니 잊지마세요! (EventDay 를 원하는 입맛에 맞게 커스텀 가능해요!)
이 아이는 여기서 끝이에요!
제가 진행한 커스텀은
1. 오늘 날짜에서 원이 움직이지 않고 클릭한 날의 이벤트만 발생하도록 구현
2. 최소, 최대 날짜 이전, 이후 날짜 클릭 시 커스텀 토스트 팝업 띄우기
3. 날짜에 원하는 이벤트를 총 4개까지 보여주도록 커스텀
(예를 들어, 28일에 영어공부, 프로그래밍 공부, 알고리즘 공부, db 공부, 책읽기 라고 적으려고 한다면,
앞의 3개만 텍스트로 보여주고, 뒤에 2개는 +2로 나타내도록 구현했습니다. 이 부분이 상당히 애를 먹었죠..)
이렇게 진행한거 같네요.. 뭔가 더 있는거 같은데 기억이...
필요하신 분들은 댓글을 통해 알려드리겠습니다.
너무 다 써놓으면.. 혼나요..
이렇게 2가지 커스텀 캘린더를 알아보았습니다.
고생하시고 저도 많은 노력을 통해 알아낸 것이니 이해해주세요!!! 단 궁금하면 다 가르쳐 드립니다.ㅎㅎ
'Android > Kotlin' 카테고리의 다른 글
kotlin Extension 으로 핸드폰 크기 확인 (0) | 2019.05.22 |
---|---|
extesion 이용한 custom toast 만들기 (0) | 2018.11.28 |
kotlin 으로 recyclerView 구성하기 (0) | 2018.05.14 |
기본 fun 만들기 (0) | 2018.05.12 |
kotlin 사용 이유와 기본 문법 (0) | 2018.04.29 |