안녕하세요. 육아개발아빠입니다.
오늘은 지난번에 포스팅 했던 내용에서 이어서 화면 간 데이터를 넘기는 방법에 대해서 포스팅 해보려고 합니다.
혹시 이전 글을 보지 않으셨다면 여기로 갔다오세요^^
2020/09/28 - [개발아빠/Flutter] - 플러터(Flutter) 화면 이동을 위한 Router(라우터) 설정 하기
지난 포스팅에서 넓은 집으로 이사해서 방이 몇개나 생긴 상태인데,
방에 있는 우리 아이들이 공부하고 있는데, 과일이라고 하나 들고 가야하는데 매번 빈손으로 왔다 갔다 하고 있네요!
또 다른 자아인 육아 아빠로써 이러면 안되지.. 해서 오늘은 과일을 들고 방에 들어가 볼려고 해요~
class _FirstRoomState extends State<FirstRoom> {
String fruits;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('첫번째 방이에요'),
),
body: Container(
child: Center(
child : Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('접시: $fruits'),
RaisedButton(
child: Text('Exit!!'),
onPressed: () {
Navigator.of(context).pop();
},
)
],
)
),
),
);
}
}
방에서 우리 아이는 접시 위에 과일을 기다리고 있네요!
이제 방으로 들어갈께요~!
으앙~ 빈손으로 방으로 들어왔어요. 접시는 null이네요. 아이가 다시 과일을 달라고하네요~
사과를 꺼내서 다시 방으로 들어갑니다.
RaisedButton(
child: Text('First Room'),
onPressed: () {
Navigator.of(context).pushNamed(Routes.firstRoom,
arguments: {"fruits" : "apple" });
},
),
pushNamed에 arguments를 추가하면 데이터를 넘길 수 있어요~
안드로이드로 비교해보면 Intent라는 키워드가 생각나네요~
잉! 그래도 접시가 비어 있네요? 분명 저는 시키는대로 보냈는데 어떻게 된거죠?
아~ 저는 줬지만 아이가 받지를 않았네요.
이것도 안드로이드에서 getIntent().getString 이런 키워드가 생각나네요~
@override
void didChangeDependencies() {
super.didChangeDependencies();
final Map arguments = ModalRoute.of(context).settings.arguments as Map;
if (arguments != null) {
fruits = arguments["fruits"] as String;
}
}
Flutter 생명 주기에 대해서 설명을 한적이 없기 때문에, 해당 메소드가 생소 할수 있겠지만, 일단은 개의치 않고 데이터를 받는다.
class _FirstRoomState extends State<FirstRoom> {
String fruits;
@override
void didChangeDependencies() {
super.didChangeDependencies();
final Map arguments = ModalRoute.of(context).settings.arguments as Map;
if (arguments != null) {
fruits = arguments["fruits"] as String;
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('첫번째 방이에요'),
),
body: Container(
child: Center(
child : Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('접시: $fruits'),
RaisedButton(
child: Text('Exit!!'),
onPressed: () {
Navigator.of(context).pop();
},
)
],
)
),
),
);
}
}
풀 코드에요~
자 이제 보내는 사람과 받은 사람 모두 준비가 되었으니 전달이 잘 되는지 볼께요~
와 드디어 방에 있는 아이 접시에 사과를 전달하게 되었습니다!!
이렇게 화면을 전달하는 키워드는 argument 입니다. 기억해주세요!
'개발아빠 > Flutter' 카테고리의 다른 글
플러터(Flutter)로 화폐 단위 표현하기 / Currency Format (1) | 2020.10.20 |
---|---|
플러터(Flutter) 네이티브앱과 Web에서 웹뷰 처리하기 (1) | 2020.10.12 |
플러터(Flutter) WebView 사용 및 History 제어 기능 추가 (2) | 2020.10.07 |
플러터(Flutter) 플랫폼 구분하기 (Android, iOS, Web) (0) | 2020.10.01 |
플러터(Flutter) 화면 이동을 위한 Router(라우터) 설정 하기 (0) | 2020.09.28 |