안녕하세요 YTS 입니다. 오늘은 제가 만든 Custom Calendar View에 대해 적어보려합니다. 기본적으로 Android 에서 제공하는 달력은 한계점이 많고 각 날짜에 꾸밈을 할 수없기 때문에 불편한점이 많습니다. 저의 방법은 RecyclerView를 이용하여 만든 방법입니다! 참고로 해당 방법을 이용하기위해선 RecyclerView와 RecyclerView.Adapter에 대한 사전지식이 조금 필요합니다. 1. RecyclerView에 ViewType 설정 2. StaggeredGridLayoutManager에 대한 Span 설정 ( 이 부분은 쉽습니다. ) 사전 지식을 아는 개발자라면 쉽게 따라 하실 수 있도록 가이드하겠습니다. 1. Xml에 RecyclerView를 선언한다.
저는 헤더, 요일, 달력뷰 세가지로 나누어 구현하였습니다. 2. 달력에 구성을 생각하고 ViewType을 나누기 이렇게 저는 달력의 타입을 날짜타입, 비어있는 일자 타입, 일자 타입 총 세가지를 나누었습니다. 자 그렇다면 이제 이 ViewType 을 가지고 데이터를 만들어 볼까요? 3. 달력에 넣을 데이터를 만들자 날짜 타입 = Long 비어있는 일자 타입 = String 일자 타입 = GregorianCalendar
4 RecyclerView.Adpater에 사용할 ItemView를 만들자. 4.1 날짜 타입 item_calendar_header.xml <?xml version="1.0" encoding="utf-8"?> 4.2 비어있는 일자 타입 item_day_empty.xml <?xml version="1.0" encoding="utf-8"?> 4.3 일자 타입 item_day.xml
5. RecyclerView.Adpater를 만들자 이제는 실질적 각 ViewType에 맞는 View를 넣어 볼까요
5. 만들어놓은 List를 Adapter에 연결하자.
여기까지 따라오시고 이해를 하셨다면 충분히 여러분들도 예쁜 커스텀 달력을 만드실수 있을거예요! 이렇게 해서 만든 저만에 YTS 버젼 달력 뷰 입니다! 이번에 달력을 이쁘게 만들어 놨으니.. 다음부턴 재탕해서 사용해야겠네요!!! 참고로 해당 달력뷰는 아래 링크로 들어가셔서 앱을 다운 받으시면 확인해 보실 수 있습니다. https://play.google.com/store/apps/details?id=com.yts.tsdiet 추가적으로 위와 동일한 달력부분만 추출하여 예제 소스를 만들었는데요. 밑에 링크에 들어가셔서 받아보시면됩니다! 스타도 한번 씩 눌러주세요 : ) https://github.com/YunTaeSik/Calendar_IOS 긴글을 읽어 주셔서 감사합니다. 추가적인 질문은 댓글로 해주시면 감사합니다. |