2023/08/26 2

[안드로이드] 순서보장 무한 페이저(Endless Pager) 만들기 with Jetpack Compose

무한 페이저를 만들때 아주 단순하게 생각하면 이렇게 만들기 쉽다. 하지만 이 경우, 초기 페이지가 내가 원하는 페이지가 되지 않는다. 실제 배열의 0번째부터 시작해야하는데, 실제 배열의 길이가 바뀌면 초기 페이지도 어떻게 될지 보장 할 수 없게 된다. val pageCount = Int.MAX_VALUE val pagerState = rememberPagerState( initialPage = Int.MAX_VALUE / 2 ) 무한 페이저는 한 두번이 아니라 나도 초기 페이지 계산하는 공식을 때려 맞추고는 했는데 빡대가리라 뭔가 수학적으로 설명을 하는게 안되서… 헤메고 있던 차, Jetpack Compose Endless Pager만들기 YouTube 강의 영상에서 아주 좋은 댓글을 발견했다. 이 방법..

[안드로이드] 부채꼴 카드처럼 돌아가는 Pager 만들기 (with Jetpack Compose Horizontal Pager)

오랜만의 Android 포스팅이다...ㅋㅋㅋ 도전적인 UI를 받아볼때 머리아프면서도 신나는 그런게 있다. 이번에 만들어본 건 손에 쥔 카드처럼 돌아가는 Pager다. (뭐라고 해야할까..? 용어를 아시는분은 댓글!) Jetpack Compose를 사용한지 3개월 남짓이라 숙련도가 다소 낮았기 때문에 간단한 이해부터 하고 작업에 들어갔다. “Jetpack Compose Pager Animation” 키워드로 검색해서 나오는 글들 중에 개인적으로 가장 깔끔했던 이 글의 설명을 빌려 Page Offset을 계산하는 방식을 후술해보려 한다. Page Offset 계산하기 Pager State 에는 currentPageOffsetFraction이라는 멤버변수가 제공된다. 이름에서 알 수 있듯이, 현재 페이지에 대..