아무나 빌려가세요

flutter 페이지 뒤로 갔을때 새로고침 하는 방법. 본문

플러터

flutter 페이지 뒤로 갔을때 새로고침 하는 방법.

빌라노바 2022. 2. 22. 21:15

Navigator.push에서 then을 추가하고 setState를 적용한다.
setState가 실행됨에 따라 새로고침이 되는 방식이다.
이동된 페이지에선 Navigator.pop을 해주면 된다.

Navigator.push(context,
MaterialPageRoute(builder: (context) => moveToPage()))
                  .then((value) {
                setState(() {});
              });

첫번째 위젯에서 두번째 위젯을 return하고 세번째 위젯에서 Navigator.pop을 하는 경우 첫번째 위젯을 새로고침 하기 위해선 다른 방법이 있다.

첫번째 위젯에 위의 push를 함수의 형태로 두번째 위젯에 전달한다.

firstWidget
...
Container(
child : secondWidget(func : (){
 Navigator.push(context,
MaterialPageRoute(builder: (context) => thirdWidget()))
                  .then((value) {
                setState(() {});
              });
 })
)

두번째 위젯에선 Function 변수를 받아 버튼 안에 함수를 적용하면 된다.

Function func;
...
TextButton(
onPressed:(){
 widget.func(); --> 전달받은 함수
 }
)

이렇게 하면 첫번째 위젯을 새로고침 할 수 있다.