콘텐츠로 이동

현재 scroll 위치 구하기

구현하는 이유(활용)

스크롤이 일정이상 되면 동작하는 행위를 구현하기 위해서 // (1)
  1. scrollListener

구현

ScollController() 선언

CrollController scrollController = ScrollController(); 

scrollListner() {}

scrollListner로 동작할 함수 선언

scrollListener() {
    // 보이는 값 말고 실제 최상단에서 부터 현재 스크롤하는 위치까지의 간격
    // 500을 넘어가면 닫혀있는 상태
    bool isExpanded = scrollController.offset < 500 - kToolbarHeight;

    if(isExpanded != this.isExpanded) {
      setState(() {
        this.isExpanded = isExpanded;
      });
    }
  }

initState에서 Contoller 추가

initState에서 scroller에 Listner 할당해줌

@override
initState() {
  super.initState();

  scrollController.addListener(scrollListener);
}

dispose()

initState에서 추가한 Listner들은 모두 dispose에서 모메리에서 해제시켜줘야 함

@override
dispose() {
    scrollController.removeListener(scrollListener);
    scrollController.dispose();

    super.dispose();
}

ScrollView에 controller 추가

scrollView에서 동작할 controller 추가

CustomScrollView(
    ..., 
    controller: scrollController,
    ...,
):

참조

미세먼지 프로젝트