[flutter] 플러터(IndexedStack)에서 인덱스 변경시 이전 페이지의 스크롤 위치를 저장하는 방법은 무엇인가요?
  1. IndexedStack의 인덱스 변경에 의해 페이지가 전환될 때마다 스크롤 위치를 저장할 변수를 선언합니다. 이 변수는 해당 페이지의 스크롤 위치를 저장하는 역할을 합니다.
double _pageScrollOffset = 0.0;
  1. 페이지 전환 시 스크롤 위치를 저장하기 위해 페이지의 스크롤 컨트롤러를 이용합니다. 예를 들어, ListView를 사용하는 페이지의 경우 ListView의 controller 속성을 설정합니다.
ScrollController _scrollController = ScrollController();
  1. 스크롤 컨트롤러의 addListener 메서드를 이용하여 스크롤 위치가 변경될 때마다 _pageScrollOffset 변수를 업데이트합니다.
_scrollController.addListener(() {
  _pageScrollOffset = _scrollController.offset;
});
  1. IndexedStack의 인덱스가 변경될 때마다 이전 페이지의 스크롤 위치를 유지하도록 합니다. 이를 위해 IndexedStack의 인덱스 변경 함수를 정의하고 해당 함수에서 _pageScrollOffset 변수를 사용하여 이전 페이지의 스크롤 위치를 설정합니다.
void changePageIndex(int newIndex) {
  setState(() {
    // 이전 페이지의 스크롤 위치를 설정
    _scrollController.jumpTo(_pageScrollOffset);
    // 인덱스 변경
    _currentIndex = newIndex;
  });
}

위의 단계를 따라하면 IndexedStack 위젯에서 인덱스 변경 시 이전 페이지의 스크롤 위치를 저장할 수 있습니다. 이를 통해 사용자는 페이지를 전환하고 다시 전환할 때 이전 페이지의 스크롤 위치를 그대로 유지할 수 있게 됩니다.