1、路由管理 | 2、状态管理 | 3、国际化 | 4、主题 | 5、GetUtil工具 | 6、dialog 弹框 | 7、snackbar |
其实上面功能介绍的还是不够详细,GetX还支持网络请求等
首先需要将Flutter项目入口MaterialApp替换成GetX提供的GetMaterialApp,代码示例如下:
旧
return MaterialApp(
home: MyHomePage(),
);
新
return GetMaterialApp(
home: MyHomePage(),
);
接下来就是创建路由管理类 router_util.dart,这个类负责统一把所有页面进行路由设置,GetX设置路由代码如下:
GetPage(name: "/login", page: () => LoginPage()),
GetPage 便是设置一个类的路由
"/login" 为使用过程中的Key,page: ?为指向的页面。
下面是路由管理类的完整代码
import 'package:get/get.dart';
import '../view/login/forget/forget_view.dart';
import '../view/login/login_view.dart';
import '../view/login/register/register_view.dart';
import '../view/main/tab_bar/tab_bar_view.dart';
List<GetPage> get pages => [
GetPage(name: "/login", page: () => LoginPage()),
GetPage(name: "/tabbar", page: () => TabBarPage()),
GetPage(name: "/register", page: () => RegisterPage()),
GetPage(name: "/password", page: () => ForgetPage()),
];
我们将路由管理设置完以后,下面就是路由注入了,注入代码简单,便是将pages放入到的getPages中即可。当然当我们使用路由管理后,我们需要设置一下程序入口initialRoute,完整代码如下:
return GetMaterialApp(
getPages: pages,
initialRoute: "/login",
);
到此就完成了路由管理的配置,下面介绍一下路由的使用,推荐使用别名路由。
Get.to(RegisterPage());
Get.to(RegisterPage(),arguments: "范型");
参数获取
dynamic arguments = Get.arguments;
Get.off(RegisterPage());
Get.offAll(RegisterPage());
Get.back();
Get.back(result: '返回参数');
var result = await Get.to(RegisterPage());
使用方法与普通路由基本相同,只是方法上多了?Named
Get.toNamed("/register");
Get.toNamed("/register",arguments: "范型");
Get.toNamed("/register?id=1&name=王哪跑");
Get.parameters['id']
Get.offAllNamed("/tabbar");
到此就完成了GetX路由管理的使用。
GetX功能很强大,路由管理是比较常用的功能。
GetX后续功能将会持续介绍使用,下一片文章会介绍一下GetX状态管理