对应原生路由:
Navigator.push(context, MaterialPageRoute(
builder: (BuildContext context) {
return NextScreen();
},
));
返回:
Get.back();
对应原生路由:
Navigator.pop(context);
打开新页面,并且用新页面替换旧页面(删除旧页面):
Get.off(NextScreen());
对应原生路由:
Navigator.pushReplacement(context, MaterialPageRoute(
builder: (BuildContext context) {
return NextScreen();
},
));
打开新页面并删除之前的所有路由:
Get.offAll(NextScreen());
对应原生路由:
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(
builder: (BuildContext context) {
return NextScreen();
},
),
(Route route) => false,
);
导航到新页面,在返回时接收返回数据:
var data = await Get.to(NextScreen());
对应原生路由:
var data = await Navigator.push(context, MaterialPageRoute(
builder: (BuildContext context) {
return NextScreen();
},
));
带返回值返回前一个路由,配合上面使用:
Get.back(result: ‘success’);
对应原生路由:
Navigator.pop(context, ‘success’);
别名路由导航
- 声明别名:
abstract class Routes {
static const Initial = ‘/’;
static const NextScreen = ‘/NextScreen’;
}
- 注册路由表:
abstract class AppPages {
static final pages = [
GetPage(
name: Routes.Initial,
page: () => HomePage(),
),
GetPage(
name: Routes.NextScreen,
page: () => NextScreen(),
),
];
}
- 替换MaterialApp为GetMaterialApp:
void main() {
runApp(GetMaterialApp(
debugShowCheckedModeBanner: false,
initialRoute: ‘/’,
theme: appThemeData,
defaultTransition: Transition.fade,
getPages: AppPages.pages,
home: HomePage(),
));
}
使用
导航到下一个页面:
Get.toNamed(Routes.NextScreen);
导航到下一个页面并删除前一个页面:
Get.offNamed(Routes.NextScreen);
导航到下一个页面并删除以前所有的页面:
Get.offAllNamed(Routes.NextScreen);
发送数据到别名路由:
Get在这里接受任何东西,无论是一个字符串,一个Map,一个List,甚至一个类的实例。
Get.toNamed(Routes.NextScreen, arguments: ‘新垣结衣’);
获取参数:
String name=Get.arguments;
动态网页链接:
像web一样携带参数,适合前端开发的风格。
Get.offAllNamed(“/NextScreen?device=phone&id=354&name=Enzo”);
获取参数:
int id = Get.parameters[‘id’];
// out: 354
String name=Get.parameters[‘name’];
还可以这样定义路由别名:
GetPage(
name: ‘/profile/:user’,
page: () => UserProfile(),
),
导航:
Get.toNamed(“/profile/34954”);
在第二个页面上,通过参数获取数据
print(Get.parameters[‘user’]);
// out: 34954
中间件
在跳转前做些事情,比如判断是否登录,可以使用routingCallback来实现:
GetMaterialApp(
routingCallback: (routing) {
if(routing.current == ‘/second’){
// 如果登录。。。
}
}
)
小部件导航
SnackBars
弹出:
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
![](https://img-blog.csdnimg.cn/img_convert/98b13da46e401339c50d205bb060ec0e.jpeg)
最后
代码真的是重质不重量,质量高的代码,是当前代码界提倡的,当然写出高质量的代码肯定需要一个相当高的专业素养,这需要在日常的代码书写中逐渐去吸收掌握,谁不是每天都在学习呀,目的还不是为了一个,为实现某个功能写出高质量的代码。
所以,长征路还长,大家还是好好地做个务实的程序员吧。
最后,小编这里有一系列Android提升学习资料,有兴趣的小伙伴们可以来看下哦~
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
业素养,这需要在日常的代码书写中逐渐去吸收掌握,谁不是每天都在学习呀,目的还不是为了一个,为实现某个功能写出高质量的代码。**
所以,长征路还长,大家还是好好地做个务实的程序员吧。
最后,小编这里有一系列Android提升学习资料,有兴趣的小伙伴们可以来看下哦~
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!