• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

Provider + StateLess 에서 ScrollController Dispose() 사용 문제 질문

20.12.28 19:48 작성 조회수 559

0

Provider  를 사용하게 되면 StateLessWidget을 사용하는데 탭뷰를 다녀오면 리스트가 초기화되어서 이전에 보던 스크롤 위치를 고정시키려고 합니다.

이걸 하려고 보니 ScrollController를 사용해야 하던데 StateLess는 Dispose가 없어서 controller dispose를 하지 못합니다.

Provider 를 사용하는데 StateFull 을 사용해야 하는 것인가요?

TabView 로 다른 탭 갔다 오면 리스트 오프셋이 게속 0이네요 ㅠㅠ

답변 3

·

답변을 작성해보세요.

1

Provider를 사용하더라도 Controller를 사용하게 되면 StatefulWidget 을 쓰는군요 감사합니다.

스크롤 위치 기억하는 방법은 찾아봤더니 아래 방법이 있네요

CustomScrollView(
key: PageStorageKey<String>('feed_scene'),

1

StatefulWidget 사용하시면 되고요.

ScrollController에 offset 프로퍼티 값을 Provider 쪽에 저장해 두고  initState() 에서 ScrollController의 jumpTo() 에 전달해 주면 될 듯 합니다.

처음엔 초기값 0 주시면 되겠네요

0

저장은 dispose() 에서 하시면 되겠구요