SingleChildScrollView에 child로 Column을 넣어 사용하다,
문득 ListView와의 어떤 차이가 있는지 궁금해졌습니다.
어떤 상황에 어느 방법으로 사용할지 알아보겠습니다.
복잡한 레이아웃 구성이 가능합니다.
Column 내부에 다양한 위젯과 레이아웃을 조합하여 복잡한 UI를 구성할 수 있습니다.
스크롤 가능한 영역 내에서 정적인 요소들이 함께 있을 경우 유용합니다.
예를 들어, 스크롤 영역의 상단이나 하단에 고정된 버튼이나 텍스트가 있는 경우 등입니다.
모든 위젯이 한 번에 렌더링됩니다.
자식 위젯이 많은 경우, 앱의 성능에 부정적인 영향을 미칠 수 있습니다.
메모리 사용량이 많아질 수 있으며, 대규모의 아이템 목록을 다루는 경우, 비효율적일 수 있습니다.
대량의 데이터를 다룰 때, 최적화되어 있습니다.
화면에 보이는 항목만 렌더링하여 성능과 메모리 사용량을 개선합니다.
아이템 재사용을 통해 스크롤 성능이 매우 우수합니다.
스크롤 시에도 부드러운 사용자 경험을 제공합니다.
내장된 스크롤 기능을 사용하기 때문에 추가적인 스크롤 위젯을 사용할 필요가 없습니다.
내부에 복잡한 레이아웃을 구성하기 어렵습니다.
모든 자식이 리스트의 항목으로 구성되어야 하며, 복잡한 레이아웃을 위해서는 ListView.builder 등을 사용하여 커스텀 위젯을 구현해야 합니다.
ListView의 헤더나 푸터 같은 고정된 요소를 추가하기 위해서는 ListTile 등을 활용하거나, ListView.builder의 itemCount를 조정하여 직접 구현해야 합니다.