2024/10/16 2

Nutri Capture 프론트엔드 - 스크롤 로직 View에 일임

#1 개요기존에는 무한 스크롤을 위한 암시적 스크롤 로직을 ViewModel과 View과 양분하고 있었다. 본 게시글에서 이 스크롤 관련한 로직을 View에 일임한다. ViewModel은 이제 LazyColumn이 보유할 아이템 리스트의 추가ㆍ제거만 수행하면 될 것이다. #2 코드#2-1 ViewModel에서의 Scroll 관련 코드 삭제...class NutrientViewModel : ViewModel() {    // (1) 화면 표시용 State    ...    // (2) ViewModel용 내부 변수    ...    // (3) View에서 받아 처리할 이벤트    ...    // (4) View로부터 받은 이벤트 처리    fun onEvent(event: NutrientViewMode..

Nutri Capture 프론트엔드 - requestScrollToItem()을 이용한 깔끔한 역방향 무한 스크롤

#1 스크롤 함수 변경#1-1 기존 함수LazyListState.scrollToItem() 및 LazyListState.scrollBy()는, 시스템 상의 제약이 존재한다. 사용자가 화면에 손을 붙인 채로 유지하면 스크롤이 아예 잠겨버리기 때문이다. 이 시스템 상의 제약을 우회하려고 정말 많은 코드를 시도해보았지만, 제대로 작동하기 않았고 작동하더라도 앱이 굉장히 조잡해보이는 모양새였다. #1-2 LazyListState.requestScrollToItem() LazyListState  |  Android Developers developer.android.com그러다 찾은 함수가 LazyListState.requestScrollToItem()다. 다음 Recomposition 때 스크롤이 위치해야하는 ..