import
'package:flutter/material.dart'
;
void
main() {
runApp(MyApp());
}
class
MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return
MaterialApp(
debugShowCheckedModeBanner:
false
,
theme: ThemeData(
primarySwatch: Colors.green,
),
home: FirstScreen(),
);
}
}
class
FirstScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return
Scaffold(
appBar: AppBar(title: Text(
'First Screen'
)),
body: Center(
child: ElevatedButton(
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => SecondScreen(callback: sayHello),
),
);
},
child: Text(
'Go to Second Screen'
),
),
),
);
}
String sayHello() {
return
"Hello From the First Screen"
;
}
}
class
SecondScreen extends StatefulWidget {
final Function callback;
SecondScreen({required
this
.callback});
@override
_SecondScreenState createState() => _SecondScreenState();
}
class
_SecondScreenState extends State<SecondScreen> {
String message =
""
;
@override
Widget build(BuildContext context) {
return
Scaffold(
appBar: AppBar(title: Text(
'Second Screen'
)),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'Welcome to the Second Screen'
),
ElevatedButton(
onPressed: () {
setState(() {
message = widget.callback();
});
},
child: Text(
'Say Hello'
),
),
Text(
message,
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20),
),
],
),
),
);
}
}