Pagination을 위한 무한 스크롤 동작 구현
스크롤을 바닥까지 내렸을 때 목록에 데이터를 더 불러올 수 있도록 구현함.
블로그를 보면 ListView 위젯을 많이 사용하던데, 나는 SingleChildScrollView 위젯에 스크롤 컨트롤러를 추가하여 구현하였다.
ScrollController 선언
final scrollController = ScrollController();
SingleChildScrollView 위젯에 controller 추가
SingleChildScrollView(
controller: scrollController,
...
);
스크롤 컨트롤러 리스너 추가
스크롤을 내리거나 올릴 때마다 listener에 등록된 _addScrollController 함수가 호출된다.
scrollController.addListener(() {
_addScrollController();
});
스크롤 컨트롤러:
스크롤을 바닥까지 내린 경우, findMatchingStore
또는 _fetchStoresPagination
함수 실행
void _addScrollController() {
if (scrollController.offset == scrollController.position.maxScrollExtent
&& !scrollController.position.outOfRange) {
if ( isSearchMode ) {
_findMatchingStore();
}
else {
_fetchStoresPagination();
}
}
}
'Server' 카테고리의 다른 글
Javascript/Typescript 기본 문법 정리 (0) | 2022.02.11 |
---|---|
[Spring-boot] @RestController 와 @Controller (0) | 2022.02.02 |
[spring-boot] application.properties-dev로 실행하기 (0) | 2022.01.19 |
[Spring-boot] @RequestBody, @ResponseBody : HTTP body에 데이터 송수신하기 (0) | 2021.12.28 |
Flutter Spring-boot 연동해서 웹 페이지 만들기(to-do list) (0) | 2021.12.22 |