Android 사용시 자주 사용되는 게 같은 Task 내에서 onActivityForResult 를 사용하는 편이죠.
물론 안드로이드내에서는 호출하는 쪽에서는 startActivityForResult 를 하고 다음 엑티비티에서 할일 하고 값을 다시 보낼때 onActivityResult 를 통해서 값을 받습니다.
관련 글은 http://liveonthekeyboard.tistory.com/150 보시면 됩니다.
Flutter 내에서는 라우터를 이용을 할텐데요 그럴경우 주고 받는 걸 어떻게 하는 지 볼게요.
우선 A -> B -> A 라고 가정하면
A 에서 라우팅을
Map results = await Navigator.of(context).push(new MaterialPageRoute<dynamic>(
builder: (BuildContext context) {
return new SelectionPage();
},
));
라고 Map 형태로 Future 함수로 받습니다. await 도 넣어야 합니다.
그리고 B 함수에서 pop 을 할때 값을 보내줍니다.
void _selectItem(String value, BuildContext context) {
Navigator.of(context).pop({'selection':value});
}
이렇게 pop 할때 value 값을 보내줍니다.
그러면 받는 A 쪽에서는 마지막으로
Future _buttonTapped() async {
Map results = await Navigator.of(context).push(new MaterialPageRoute<dynamic>(
builder: (BuildContext context) {
return new SelectionPage();
},
));
if (results != null && results.containsKey('selection')) {
setState(() {
_selection = results['selection'];
});
}
}
이렇게 result 로 값을 체크해서 setState 할수가 있습니다.
이상으로 flutter에서 onActivityForResult 기능 구현에 대해서 살펴보았습니다.
'스터디 > Flutter' 카테고리의 다른 글
Flutter Simple TODO(할일관리) List (0) | 2018.10.23 |
---|---|
[오류] setState() called after dispose() (0) | 2018.10.19 |
Flutter 에서 Android 모듈을 열었을때 버그 수정 공유 (0) | 2018.10.17 |
[Flutter] BuildContext를 알아보자 (0) | 2018.10.16 |
Flutter 에서 내위치 가져오기 (최신 버전 반영) (0) | 2018.10.15 |