Compose 에서의 List

임찬형·2022년 2월 21일
0

Android Compose

목록 보기
8/16

기본적인 List

  • Column을 이용한 단순한 Row를 나열하는 방법

    기본적인 List에서 스크롤을 허용하고 싶다면 Column의 Modifier에 Modifier.verticalScroll()을 적용해야 함.

기본적인 List의 문제점

  • Column에 모든 Row를 나열하는 방법이므로, 나열할 Row가 많은 경우 모든 항목을 구성하여 성능 문제가 발생할 수 있음

Lazy Composable

  • 위 문제점을 극복하기 위한 방법으로, Lazy Composable이 존재함 (LazyColumn, LazyRow)

  • 구성 요소의 표시 영역에 표시되는 항목만 구성 (RecyclerView처럼)


LazyListScope에선, 단일 요소는 item(), 다중 요소는 items()를 통해 레이아웃 설명
확장 함수로 items(messages){message -> } 방법도 제공하며, itemsIndexed()함수를 사용해 index를 제공받을 수도 있음

스크롤 위치에 반응하기

  • LazyListState를 사용하여 스크롤 위치 상태를 기억

  • 사용 예시

    LazyListState의 firstVisibleItemIndex 함수를 이용해 첫 번째 항목을 지나 스크롤했는지 여부를 확인

스크롤 위치 제어하기

  • LazyListState를 사용하여 스크롤 위치를 제어
  • scrollToItem, animateScrollToItem함수 사용해 제어 가능 (suspend)

    버튼을 누를 경우 animateScrollToItemI(index)함수를 통해 스크롤 이동

0개의 댓글