使用路由功能编写GetX
app_routes.dart
class AppRoutes {
static const home = "/";
static const details = "/details";
}
main.dart
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:get4/app_routes.dart';
import 'details_page.dart';
import 'home_page.dart';
void main(List<String> args) {
runApp(
GetMaterialApp(
initialRoute: AppRoutes.home,
defaultTransition: Transition.noTransition,
getPages: [
GetPage(
name: "/",
page: () => const HomePage(),
),
GetPage(
name: "/details",
page: () => const DetailsPage(),
),
],
debugShowCheckedModeBanner: false,
),
);
}
Home page页面 home_page.dart
import 'package:flutter/material.dart';
import 'package:get/get.dart';
class HomePage extends StatefulWidget {
const HomePage({super.key});
@override
State<HomePage> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
IconButton(
onPressed: () {
Get.toNamed(
"/details",
arguments: {"name": "zz", "vip": true},
);
},
icon: const Icon(Icons.arrow_right_alt_outlined)),
const Text("Home Page")
],
),
),
);
}
}
details_page.dart DetailPage页面
import 'package:flutter/material.dart';
import 'package:get/get.dart';
class DetailsPage extends StatefulWidget {
const DetailsPage({super.key});
@override
State<DetailsPage> createState() => _DetailsPageState();
}
class _DetailsPageState extends State<DetailsPage> {
@override
Widget build(BuildContext context) {
final arguments = Get.arguments;
final name = arguments["name"];
final vip = arguments["vip"];
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
IconButton(
onPressed: () {
Get.toNamed(
"/",
arguments: {"items": 4, "payment": 100.30},
);
},
icon: const Icon(Icons.arrow_back),
),
const Text("Detail Page"),
Text(name),
vip ? const Text("VIP") : const Text("Not VIP"),
],
),
),
);
}
}