把counter相关数据合入单独的页面. 工程名为get1. 一共有两个页面, main和detail。
main.dart
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:get1/main_page.dart';
void main(List<String> args) {
runApp(const CounterApp());
}
class CounterApp extends StatelessWidget {
const CounterApp({super.key});
@override
Widget build(BuildContext context) {
return const GetMaterialApp(
debugShowCheckedModeBanner: false,
home: MainPage(),
);
}
}
main_page.dart
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:get1/counter_controller.dart';
import 'package:get1/detail_page.dart';
class MainPage extends StatefulWidget {
const MainPage({super.key});
@override
State<MainPage> createState() => _MainPageState();
}
class _MainPageState extends State<MainPage> {
CounterController c = Get.put(CounterController());
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text("You have clicked: "),
Obx(
() => Text("${c.counter}"),
),
TextButton(
onPressed: () {
Get.to(const DetailPage());
},
child: const Icon(Icons.arrow_right_alt_rounded),
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: () {
c.increasement();
},
child: const Icon(Icons.add),
),
);
}
}
detail_page.dart
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:get1/counter_controller.dart';
import 'package:get1/main_page.dart';
class DetailPage extends StatefulWidget {
const DetailPage({super.key});
@override
State<DetailPage> createState() => _DetailPageState();
}
class _DetailPageState extends State<DetailPage> {
CounterController c = Get.find();
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text("Detail page!"),
TextButton(
onPressed: () {
Get.to(const MainPage());
},
child: const Icon(Icons.arrow_back),
),
Text("${c.counter}"),
IconButton(
onPressed: () {
Get.snackbar(
"ALARM",
'water is shortage.',
snackPosition: SnackPosition.BOTTOM,
snackStyle: SnackStyle.GROUNDED,
);
},
icon: const Icon(Icons.snapchat_outlined),
)
],
),
),
);
}
}
counter_controller.dart
import 'package:get/get.dart';
class CounterController extends GetxController {
RxInt counter = 0.obs;
increasement() => counter++;
}