J.Y.S
¿ whats my interest ?
J.Y.S
전체 방문자
오늘
어제
  • 분류 전체보기 (59)
    • 트러블슈팅 기록 (7)
    • Java&Kotlin (5)
    • Server (22)
    • 데이터 엔지니어링 (3)
    • Architecture& Design Patter.. (1)
    • Daily (11)
    • 알고리즘 공부 (9)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
J.Y.S

¿ whats my interest ?

Server

[Flutter] pagination: 스크롤 시 추가 데이터 로딩하기(무한스크롤)

2022. 1. 25. 16:02

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
    'Server' 카테고리의 다른 글
    • Javascript/Typescript 기본 문법 정리
    • [Spring-boot] @RestController 와 @Controller
    • [spring-boot] application.properties-dev로 실행하기
    • [Spring-boot] @RequestBody, @ResponseBody : HTTP body에 데이터 송수신하기
    J.Y.S
    J.Y.S

    티스토리툴바