showDialog를 WidgetsBinding.instance!.addPostFrameCallback 으로 감싸줘야한다!
WidgetsBinding.instance!.addPostFrameCallback((_) async {
await showDialog<bool>(
...
)
});
build()중에 ShowDialog()메소드가 실행되면 플러터가 위젯트리에서 가장 가까운 Overlay를 찾게된다.
그 Overlay를 다이얼로그의 container로 사용하게된다.
initState()중에 showDialog()메소드가 실행됐을때는 아래 참고사이트를 보세요!
예시상황1)
화면이 로드되고 있는 중에 initState()에서 다이얼로그 띄우고싶을때
예시상황2)
Navigator로 화면 이동후 새로운 화면이 그려지고있는중에 다이얼로그를 띄우고 싶을때
다이얼로그를 띄울때는 웬만하면 WidgetsBinding.instance!.addPostFrameCallback 감싸는게 좋을것같다.
화면이 다 그려지고나서 띄우면 나쁠게 없으니깡
참고)
https://www.didierboelens.com/2019/04/addpostframecallback/