1. Navigator.push 사용
IconButton(
onPressed: (){
Navigator.push(context,
MaterialPageRoute(builder: (context) => Upload())
);
},
icon: Icon(Icons.add_box_outlined),
iconSize: 30,
),
- 아이콘 버튼 클릭시 커스텀 위젯 화면이 덮어 씌어짐.
1-1. 띄운 화면에 또 다른 화면을 띄우고 싶다면?
class Upload extends StatelessWidget {
const Upload({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text('이미지업로드화면'),
IconButton(
onPressed: (){
Navigator.push(context,
MaterialPageRoute(builder: (context) => Upload())
);
},
icon: Icon(Icons.close)
),
],
)
);
}
}
2. initialRoute 코드 사용하기
void main() {
runApp(
MaterialApp(
theme: style.theme,
initialRoute: '/',
routes: {
'/' : (c) => Text('첫페이지'),
'/detail' : (c) => Text('두페이지'),
},
)
);
}
- 각 key의 value값에 커스텀 위젯을 넣어서 페이지를 관리할 수 있다.
- home은 사용하지말아야함.
2-1. 위젯안에 버튼 클릭시 '/detail' 보여주고 싶다면
- Navigator.pushNamed(context,'/경로'); 코드 사용.
class Upload extends StatelessWidget {
const Upload({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text('이미지업로드화면'),
IconButton(
onPressed: (){
Navigator.pushNamed(context,'/detail');
},
icon: Icon(Icons.close)
),
],
)
);
}
}