본문 바로가기

CS/Flutter | Dart

push 메소드 - pushReplacement, pushReplacementNamed, pushAndRemoveUntil, pushNamedAndRemoveUntil

pushReplacement()

그 다음 페이지(RouteThree Screen)로 이동은 하지만 그 페이지(RouteTwo Screen)에서 pop()을 했을 때 pushReplacement()했던 페이지(RouteTwo Screen)를 지우고 그 전 페이지로 간다(RouteOne Screen)

 

 

route2_screen.dart

 

RouteTwo  push replacement (RouteTwo 지우고)-> RouteThree  pop() -> RouteOne

 

 

 

pushReplacementNamed

route2_screen.dart

pushReplacementNamed()도 pushReplacement()와 마찬가지로 동작한다

RouteTwo  push replacement (RouteTwo 지우고)-> RouteThree  pop() -> RouteOne

 

하지만 pushReplacementNamed()는 MaterialPageRoute()를 사용할 수 없다

 

 

 

pushAndRemoveUntil

route2_screen.dart

신기한 자식일세,,

진짜 이름 그대로 push하고 ~할 때까지 삭제함 ㄷㄷ

(route) => route.settings.name == '/'

이런 식으로 하면 홈스크린이 아닌 라우트는 라우트 스택에서 삭제하고 홈스크린일 경우에만 사라지지 않는다

RouteTwo  pushAndRemoveUntil(HomeScreen 제외한 나머지 라우트 삭제하고) -> RouteThree pop() -> (RouteThree 삭제되었으니) HomeScreen

 

 

 

 

pushNamedAndRemoveUntil

route2_screen.dart

pushNamedAndRemoveUntil()도 똑같이 동작하지만 코드를 위와 같이 작성해주면 된다

 

 

 

 

 


Tiny Star