flutter infinite scroll 노치 터시 상단으로 올라가게 하기

Hoseon Chu·2021년 7월 22일
0

flutter

목록 보기
3/5

일반적인 ListView에서는 ios의 노치나 최상단을 터치 하면 스크롤은 무조건 top으로 가 도록 기본 설정 되더 있다.

그러나 infinite scroll과 같이 스크롤의 스크롤이 중첩 되는 경우에는
상단으로 scroll 되지 않는 문제점이 보인다.

이를 해결하기 위해서 아래와 같이 해결하였다

공식 페이지에 나와 있는 내용

On iPhone, the scroll-to-top gesture has no effect if there is more than one scroll view on-screen that has scrollsToTop set to true.

ScrollController를 PrimaryScrollController.of(Context)로 인스턴스를 생성해준다.

class _ReviewPageState extends State<ReviewPage> {
  ScrollController? scrollController;  // 스크롤 컨트롤 선언
onNotification: (Notification notification) {
            **scrollController = PrimaryScrollController.of(context);**
            if (scrollController!.offset == scrollController!.position.maxScrollExtent && notification is ScrollEndNotification) {
                Get.find<PersonController>().reload();
            }
            return false;
          },
          child: _loadReview(context)

위와같이 선언해주면 잘 해결된다.

profile
개발자입니다

0개의 댓글