navigator

개발/Flutter

다중 네비게이터 사용 시의 modal_bottom_sheet 문제

root가 아닌 자식에서 modal_bottom_sheet을 1 개의 네비게이터 사용하듯이 열면 아래 이미지와 같은 문제가 발생한다. 이를 해결하기 위해선 root 네비게이터를 쓰도록 해야한다. 일반적인 dialog처럼 modal_bottom_sheet에도 적용 가능하므로 아래와 같이 한 줄 추가하면 해결된다. 아래와 같이 하위 네비게이터가 아닌 root 네비게이터에서 modal 창이 나온다.

개발/Flutter

[Navigator] popUntil

Navigator클래스 내의 static인 popUntil과 NavigatorState클래스의 멤버 함수 두 개가 있다. 그 중 static인 함수는 첫번째 매개변수의 BuildContext를 통해 NavigatorState를 찾은 뒤에 NavigatorState클래스의 popUntil을 호출하도록 되어있다. 콜백 함수의 반환 값이 true일 때 pop을 그만하도록 구현되어있다. 예시 내가 유용하게 쓴 곳은 BottomNavigationBar를 두고 각 탭별로 NavigatorState를 가지고 있게 한 상황이였다. 게시판이라는 탭이 있으면 게시판에서 어떤 글을 보고 있을 때 같은 탭인 게시판을 누르면 게시판 탭의 메인 화면으로 이동하도록 했고 이미 메인 탭일 땐 아무런일도 일어나지 않도록 구현했었다. ..

leebera_
'navigator' 태그의 글 목록