[이미지 로딩 느림 현상]스타일 선택 페이지와 스타일 추천 페이지에서 이미지들이 리스트로 쫙 나열되는데 아무래도 db에서 이미지를 불러오기 때문에 매끄럽지 못한 현상이 있다.
검색 결과 pagination을 통해 해결할 수 있다고 해서 한번 구현해보려고 한다.
다령의 데이터를 부분적응로 나눠서 불러오는 기술로, 페이지 로딩 시간을 단축 시킬 수 있다.
pagination에 크게 2가지 종류가 있다.
1) Page Based Pagination
2) Cusor Based Paginaion
사실 우리는 DB에 데이터를 더 추가할 일이 적기 때문에 두 방법 모두 사용해도 되지만,
더 매끄러운 UI를 생각했을 땐 Cusor Based Pagination이 적합하다고 생각해서 선택했다.
void initState() {
super.initState();
_loadData();
_choiceShoweDialog();
_scrollController.addListener(() {
if (_scrollController.position.pixels ==
_scrollController.position.maxScrollExtent &&
!isLoading) {
_loadData();
}
});
}
MasonryGridView.builder(
controller: _scrollController,
gridDelegate:
SliverSimpleGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2),
itemCount: _imageList.length + (isLoading ? 1 : 0),
mainAxisSpacing: 8,
crossAxisSpacing: 8,
itemBuilder: (context, index) {
if (index == _imageList.length) {
return Center(child: CircularProgressIndicator());
}