dev/flutter

[Flutter] 다음 화면 스크린으로 이동(Navigator)

캄춰 2023. 12. 12. 16:02
728x90
반응형

화면을 이동할 때 android에서 startActivitty, ios는 present였나..? 를 사용했다.

 

플루터에서는 단순히 Navigator를 사용해서 화면 이동을 한다.

 

 

화면을 이동할 때 단순하게 앞의 스크린을 기억하는 것은

: Navigator.push (...)를 사용하고,

 

앞의 스크린을 기억할 필요가 없는 경우

: 안드로이드에서 startActivity하고 finish()하는 것처럼

: Navigator.pushAndRemoveUntil(...)을 사용한다.

 

현재 스크린을 새로운 스크린으로 대체

애니메이션은 push와 동일

: pushReplacement

 

최초 스크린이 아닌 경우 뒤로가기,

최초 스크린인 경우 뒤로가지 않음

: maybePop

 

 

return GestureDetector(
  onTap: () {
    Navigator.push(
      context,
      MaterialPageRoute(
        builder: (context) =>
          DetailScreen(title: title, thumb: thumb, id: id),
          fullscreenDialog: true
      ),
    );
  },

 

void onNextProcess() {
  Future.delayed(const Duration(seconds: 5), () {
    Navigator.pushAndRemoveUntil(
      context,
      MaterialPageRoute(builder: (context) => const HomeWidget()),
      (route) => false,
    );
  });
}

 

 

Navigator.pushAndRemoveUntil(context, newRoute, predicate)

- predicate : true =  이전 화면이 사라지지 않음

- predicate : false = 이전 화면까지 사라짐( pandas에서 inplace=True 하는 느낌이라고 보면 됨)

728x90
반응형