내비게이터 스택 제어하기

김성연·2023년 7월 24일
0

Flutter

목록 보기
22/53
  • Navigator는 라우트 객체를 스택 구조로 관리한다.
    • 만약에 이미 화면이 출력돼 스택에 있는 위젯을 다시 push한다면?

      맨 위에 다시 객체가 생성되어 스택이 쌓인다.


  • mybePop( )과 canPop( )
    pop( ) 함수는 스택에서 위젯을 제거하고 이전 화면으로 돌아간다 -> 스택에 위젯이 없으면 앱 종료
    이런 상황을 없애기 위해 사용하는 함수가 mybePop( )과 canPop( ) 이다.
  • maybePop( ): 위젯이 스택 맨 아래가 아니면 이전 화면, 맨 아래라면 아무 일도 일어나지 않는다.
  • canPop( ): 스택에서 맨 아래에 있는지 확인한다.
    • 스택 맨 아래가 아니다: true, 맨 아래다: false 반환

  • pushReplacementNamed( ), popAndPushNamed( )

    현재 위젯을 대체하거나 제거한 후 새로운 위젯 실행한다. 대체하거나 제거하기 때문에 함수를 호출한 위젯은 더 이상 스택에 남지 않는다.

  • pushNamedAndRemoveUntil( )

    특정 위젯을 화면에 출력하는 함수, 원하는 위치까지 스택에서 제거한 후 화면 이동 가능

  • 매개변수가 3개인데 두 번째 매개변수에 이동할 위젯 세 번째 매개변수(true ,false)

    • true면 pushNamed()와 똑같이 동작한다.
    • false면 스택을 비우고 새로운 위젯 추가한다.
      • withName( )함수로 스택에 있는 특정 위젯을 지정하면 그 위에 있는 위젯들만 제거한다.

  • popUntil( )함수

특정 위젯으로 한 번에 되돌아갈 수 있다.

매개변수에 특정 스택 위젯을 설정하면 그 위에 있는 스택을 모두 제거한다.

0개의 댓글