Flutter에서 현재 화면(Route) 확인하기
모바일 개발을 하다 보면, 특히 FCM과 같은 경우, 현재 어떤 화면을 보고 있는지 체크해서 그에 맞는 동작을 수행해야 할 때가 있습니다. 안드로이드에서는 Activity 자체에서 라이프사이클이 있어서 체크가 가능하지만, Flutter에서는 각 화면별로 어느 화면을 보고 있는지 체크하기가 어렵습니다.
하지만 Extension을 활용하면 비교적 편리하게 현재 Route를 확인할 수 있습니다. 이를 위해서는 Route를 만들 때 반드시 settings를 넣어 name 속성을 각 Route마다 입력해줘야 합니다.
NavigatorStateExtension 작성 예시
그 후에는 아래와 같은 NavigatorStateExtension을 작성하여 현재 보고 있는 화면(Route)을 확인할 수 있습니다:
extension NavigatorStateExtension on NavigatorState {
bool isCurrent(String routeName) {
bool isCurrent = false;
popUntil((route) {
if (route.settings.name == routeName) {
isCurrent = true;
}
return true;
});
return isCurrent;
}
}
Note: 이 내용은 Navigator 1.0 기준으로 작성되었습니다.
0 개의 댓글:
Post a Comment