Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Calender Library 동작 원리 #19

Open
2 tasks
daehwan2da opened this issue Apr 4, 2023 · 0 comments
Open
2 tasks

Calender Library 동작 원리 #19

daehwan2da opened this issue Apr 4, 2023 · 0 comments

Comments

@daehwan2da
Copy link

daehwan2da commented Apr 4, 2023

thanks to


Check List

  • view 에 대한 커스터마이징은 어떻게 할 것인지?
  • 인터렉션 행위에 대한 정의를 커스터마이징 할 수 있을 것인지?

Implementation

스크린샷 2023-04-05 오전 1 10 29

UICalendar

캘린더 UI 인터렉션 행위에 대한 추상화

swipe 가 발생했을때 캘린더 UI 의 변화 정의

  • onSwipeTop() : STATE_EXPANDED 상태의 경우 닫기
  • onSwipeLeft()
    • STATE_EXPANDED 의 경우 (펼쳐있는 경우) 월 이동
    • STATE_COLLAPSED 의 경우 (닫혀있는 경우) 주 이동
  • ...

스크린샷 2023-04-05 오전 1 11 57

사용자 Touch interrupt 를 listen 하여 swipe 행위 정의

  • 첫 x, y 좌표와 터치 마지막 x, y 좌표를 비교해 swipe 행위 정의
    • abs(diffX) > abs(diffY) : x 에 대한 움직임이 더 큰 경우
    • ...

스크린샷 2023-04-05 오전 1 12 31

CollapsibleCalendar 내부에서 setOnClickListener

스크린샷 2023-04-05 오전 1 04 21

Calendar Listener

  • 이후 사용자가 Activity 에서 커스텀하게 행위를 정의해 사용가능한 interface
    • onDaySelected() : 날짜를 선택했을때 수행되어지는 인터렉션
    • onItemClick() : 특정 날을 선택했을때 수행되어지는 인터렉션
    • onDataUpdate() : Api 혹은 기타 인터럽트로부터 데이터가 변경된 경우의 인터렉션
    • onMonthChange() : 인터럽트에 의해 월이 변경될때 인터렉션
    • onWeekChange(): 인터럽트에 의해 주가 변경될때 인터렉션

스크린샷 2023-04-05 오전 1 07 50

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant