본문 바로가기
프로그래밍/Flutter-Dart

[Flutter] ListView 와 ListView.builder 차이

by 채연2 2022. 7. 12.

앱 개발을 하다가 bottomsheet를 띄우는데 렉 걸린듯이 버벅이면서 로드가 됐다..

ListView를 사용하고 있기도 하고, 그 안에서 여러 위젯들을 많이 띄우기도 하고.. 연산도 많이 해서 그런가 싶어 이것저것 찾아보다가 결국 알아낸게 ListView.builder 였다.

 

 


 

There are four options for constructing a ListView:

1. The default constructor takes an explicit List<Widget> of children. This constructor is appropriate for list views with a small number of children because constructing the List requires doing work for every child that could possibly be displayed in the list view instead of just those children that are actually visible.

2. The ListView.builder constructor takes an IndexedWidgetBuilder, which builds the children on demand. This constructor is appropriate for list views with a large (or infinite) number of children because the builder is called only for those children that are actually visible.

3. The ListView.separated constructor takes two IndexedWidgetBuilders: itemBuilder builds child items on demand, and separatorBuilder similarly builds separator children which appear in between the child items. This constructor is appropriate for list views with a fixed number of children.

4. The ListView.custom constructor takes a SliverChildDelegate, which provides the ability to customize additional aspects of the child model. For example, a SliverChildDelegate can control the algorithm used to estimate the size of children that are not actually visible.

 

 

위의 설명으로 알 수 있듯이

ListView는 자식이 적을 때, ListView.builder는 자식이 많거나 무한일 때 사용하기 적절하다고 한다.

ListView는 모든 자식에 대해 작업을 수행하고 실제로 보여지고, ListView.builder는 실제로 보여지는 자식에 대해서만 작업을 수행하기 때문이다.

320x100

댓글