import
'package:flutter/material.dart'
;
import
'package:get/get.dart'
;
void
main() {
runApp(MyApp());
}
class
MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return
GetMaterialApp(
title:
'GetX Navigation Example'
,
theme: ThemeData(
primarySwatch: Colors.green,
),
debugShowCheckedModeBanner:
false
,
home: Screen1(),
initialBinding: BindingsBuilder(() {
Get.put(Controller());
}),
);
}
}
class
Controller extends GetxController {
RxString textFromScreen2 =
''
.obs;
}
class
Screen1 extends StatelessWidget {
@override
Widget build(BuildContext context) {
return
Scaffold(
appBar: AppBar(
title: Text(
'Screen 1'
),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
GetX<Controller>(
builder: (controller) {
return
Text(
'Text from Screen 2: ${controller.textFromScreen2}'
,
style: TextStyle(fontWeight: FontWeight.bold),
);
},
),
ElevatedButton(
onPressed: () {
Get.to(Screen2());
},
child: Text(
'Go to Screen 2'
),
),
],
),
),
);
}
}
class
Screen2 extends StatelessWidget {
final TextEditingController textEditingController = TextEditingController();
@override
Widget build(BuildContext context) {
return
Scaffold(
appBar: AppBar(
title: Text(
'Screen 2'
),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
TextField(
controller: textEditingController,
decoration: InputDecoration(labelText:
'Enter Text'
),
),
ElevatedButton(
onPressed: () {
Get.find<Controller>().textFromScreen2.value =
textEditingController.text;
Get.back();
},
child: Text(
'Save and Go back to Screen 1'
),
),
],
),
),
);
}
}