인프런 커뮤니티 질문&답변

Dongpyo Lee님의 프로필 이미지
Dongpyo Lee

작성한 질문수

Flutter 초급 - Http통신, 상태관리

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

작성

·

691

0

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

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

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

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

답변 3

1

Dongpyo Lee님의 프로필 이미지
Dongpyo Lee
질문자

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

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

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

1

오준석님의 프로필 이미지
오준석
지식공유자

StatefulWidget 사용하시면 되고요.

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

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

0

오준석님의 프로필 이미지
오준석
지식공유자

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

Dongpyo Lee님의 프로필 이미지
Dongpyo Lee

작성한 질문수

질문하기