改写Counter app, 有两个counter,同时有两个页面。一个页面可以修改和查看数据,另一个页面可以查看数据。
import 'package:flutter/material.dart';
import 'package:get/get.dart';
void main(List<String> args) {
runApp(
const GetMaterialApp(
debugShowCheckedModeBanner: false,
home: MainScreen(),
),
);
}
class IntCounter extends GetxController {
final counter = 0.obs;
increase() => counter + 1;
}
class FloatCounter extends GetxController {
final counter = 0.0.obs;
increase() => counter + 1.0;
}
class MainScreen extends StatefulWidget {
const MainScreen({super.key});
@override
State<MainScreen> createState() => _MainScreenState();
}
class _MainScreenState extends State<MainScreen> {
IntCounter ic = Get.put(IntCounter());
FloatCounter dc = Get.put(FloatCounter());
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.blueGrey,
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Obx(
() => Text("IntCouter:${ic.counter}"),
),
Obx(
() => Text("DoubleCount: ${dc.counter}"),
),
TextButton(
onPressed: () {
Get.to(const SecondPage());
},
child: const Text("Go"))
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: () {
ic.increase();
dc.increase();
},
child: const Icon(Icons.add),
),
);
}
}
class SecondPage extends StatefulWidget {
const SecondPage({super.key});
@override
State<SecondPage> createState() => _SecondPageState();
}
class _SecondPageState extends State<SecondPage> {
IntCounter ic = Get.find();
FloatCounter dc = Get.find();
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.lightGreen,
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text("Second Page: "),
Obx(
() => Text("${ic.counter}"),
),
Obx(
() => Text("${dc.counter}"),
),
TextButton(
onPressed: () {
Get.back();
},
child: const Text("Back"))
],
),
),
);
}
}