[Flutter] SingleChildScrollView with Column & ListView

hodu·2024년 3월 14일
0

Flutter

목록 보기
27/30

SingleChildScrollView에 child로 Column을 넣어 사용하다,
문득 ListView와의 어떤 차이가 있는지 궁금해졌습니다.

어떤 상황에 어느 방법으로 사용할지 알아보겠습니다.

SingleChildScrollView with Column

장점

  • 복잡한 레이아웃 구성이 가능합니다.
    Column 내부에 다양한 위젯과 레이아웃을 조합하여 복잡한 UI를 구성할 수 있습니다.

  • 스크롤 가능한 영역 내에서 정적인 요소들이 함께 있을 경우 유용합니다.
    예를 들어, 스크롤 영역의 상단이나 하단에 고정된 버튼이나 텍스트가 있는 경우 등입니다.

단점

  • 모든 위젯이 한 번에 렌더링됩니다.
    자식 위젯이 많은 경우, 앱의 성능에 부정적인 영향을 미칠 수 있습니다.

  • 메모리 사용량이 많아질 수 있으며, 대규모의 아이템 목록을 다루는 경우, 비효율적일 수 있습니다.


ListView

장점

  • 대량의 데이터를 다룰 때, 최적화되어 있습니다.
    화면에 보이는 항목만 렌더링하여 성능과 메모리 사용량을 개선합니다.

  • 아이템 재사용을 통해 스크롤 성능이 매우 우수합니다.
    스크롤 시에도 부드러운 사용자 경험을 제공합니다.

  • 내장된 스크롤 기능을 사용하기 때문에 추가적인 스크롤 위젯을 사용할 필요가 없습니다.

단점

  • 내부에 복잡한 레이아웃을 구성하기 어렵습니다.
    모든 자식이 리스트의 항목으로 구성되어야 하며, 복잡한 레이아웃을 위해서는 ListView.builder 등을 사용하여 커스텀 위젯을 구현해야 합니다.

  • ListView의 헤더나 푸터 같은 고정된 요소를 추가하기 위해서는 ListTile 등을 활용하거나, ListView.builder의 itemCount를 조정하여 직접 구현해야 합니다.

profile
Flutter developer

0개의 댓글