본문 바로가기

Flutter

[j Flutter] 스크롤뷰 바닥감지

728x90
반응형

Flutter에서 스크롤뷰 바닥감지를 하여 무한스크롤 기능을 구현할 수 있다.

listview 바닥감지하는 방법 2가지가 있다.

 

1. NotificationListener 사용

  - listview를 NotificationListener로 감싸준다.

NotificationListener<ScrollNotification>(
  onNotification: (scrollNotification) {
    if (scrollNotification is ScrollEndNotification) {
      print("Scroll End");
      // 여기에 스크롤 바닥감지시 실행 할 코드를 넣어준다.
     }
    return false;
    },
  child: ListView(
      //...
      ),
)

 

 

2. ScrollController 사용

  - ScrollController.postion을 통해 바닥감지

ScrollController _scrollController = new ScrollController();

 _scrollController.addListener((){

      if(_scrollController.position.pixels  == _scrollController.position.maxScrollExtent){
        Print('Scroll End');
        //여기에 바닥감지시 실행할 코드를 작성한다.
      }
    });
    
    

 

  - listview에 controller 추가

 

ListView(controller: _scrollController, children: //리스트뷰내용 );

 

  - ScrollController dispose()해준다.

 

  @override
  void dispose() {
    _scrollController.dispose();
    super.dispose();
  }
728x90
반응형