美文网首页
flutter小计

flutter小计

作者: woniu | 来源:发表于2020-09-17 15:48 被阅读0次

一、常用的第三方插件

名称 描述
dio 网络请求
fluttertoast 提示 toast
sqflite 数据持久化
flutter_swiper 轮播图
flutter_screenutil 屏幕适配
cached_network_image 缓存网络图片
shared_preferences 本地存储
event_bus 事件通知
provider 状态管理
flutter_screenutil 屏幕适配
city_pickers 城市选择器
flutter_easyrefresh 刷新控件
transparent_image 图片动画
device_info 获取设备信息

二、路由

2.1 基本跳转
  • initialRoute:设置应用程序从哪一个路由开始启动,设置了该属性,就不需要再设置home属性了
  • routes:定义名称和路由之间的映射关系,类型为Map<String, WidgetBuilder>
2.2 跳转传值

arguments传递数据。

_onPushTap(BuildContext context) {
  Navigator.of(context).pushNamed(HYDetailPage.routeName, arguments: "a home message of naned route");
}

HYDetailPage接受数据:
在build方法中ModalRoute.of(context)可以获取到传递的参数。

 Widget build(BuildContext context) {
    // 1.获取数据
    final message = ModalRoute.of(context).settings.arguments;
  }
2.3 路由钩子

onGenerateRoute,使用场景,假如我们有一个HYAboutPage,也希望在跳转时,传入对应的参数message,并且已经有一个对应的构造方法。这个时候我们可以使用onGenerateRoute的钩子函数:

  • 当我们通过pushNamed进行跳转,但是对应的name没有在routes中有映射关系,那么就会执行onGenerateRoute钩子函数;
  • 我们可以在该函数中,手动创建对应的Route进行返回;
  • 该函数有一个参数RouteSettings,该类有两个常用的属性:
    name: 跳转的路径名称
    arguments:跳转时携带的参数
onGenerateRoute: (settings) {
  if (settings.name == "/about") {
    return MaterialPageRoute(
      builder: (ctx) {
        return HYAboutPage(settings.arguments);
      }
    );
  }
  returnnull;
}
2.4 onUnknownRoute

在路由不存在的时候,这个时候我们希望跳转到一个统一的错误页面。以防止flutter出现错误的情况。

  • 未知页面/abc
  ListTile(
     onTap: () {
         print("我的收藏");
         Navigator.pushNamed(context, '/GHOrderListPage231231');//弹出错误页面
          },
         leading: Icon(Icons.collections_bookmark, color: Colors.red),
         title: Text("我的收藏"),
         ),)
  • 创建错误提示页面
class UnknownPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("错误页面~"),
      ),
      body: Container(
        child: Center(
          child: Text("页面跳转错误~"),
        ),
      ),
    );
  }
}
  • 设置onUnknownRoute路由
onUnknownRoute: (settings) {
  return MaterialPageRoute(
    builder: (ctx) {
      return UnknownPage();
    }
  );
},

结果如下图所示:


错误路由界面

相关文章

  • flutter小计

    一、常用的第三方插件 名称描述dio网络请求fluttertoast提示 toastsqflite数据持久化flu...

  • Flutter学习小计:Android原生项目引入Flutter

    前言目前Flutter可以说是非常火热了,多次更新过后也越来越稳定,受到了很多开发者的青睐。不过纯Flutter开...

  • 2019-07-31

    统计不是“小计”的个数。如果是小计就回“空”,不是小计就按顺序排列。image.png 如果是小计就回“空”,不是...

  • Flutter学习小计:实现json数据的解析

    前言最近Google开源的跨平台移动开发框架Flutter非常火热,推出了1.0.0的正式版,趁着热度,我也是抽空...

  • 日记6

    小计划 学英语开始

  • 2020-07-03

    今日: 消费项目 小计 早餐 ...

  • 小计

    我觉得,我应该每天都写一下日记,记录下我自己的心里路程。 知道自己在干什么。 知道要怎么干。 做了那些事,有什么结...

  • 小计

    一个阴谋的结束,必定是另一个阴谋的开始。没人能逃过结局的宿命。你无法确定将来的态势,唯要做的就是始于脚下,做好眼前的事。

  • 小计

    今天比较烦躁,因为我早早的上床睡觉了,上床睡觉因为眼睛酸痛,累了,我决定明天早上五点半起床,看半个小时书,完成工作...

  • 小计

    人堕落起来不需要什么成本,为排遣无所事事的空虚和寂寞,总会找更多无聊的事来填满这种空虚。 一个人,有最好的状...

网友评论

      本文标题:flutter小计

      本文链接:https://www.haomeiwen.com/subject/dqglyktx.html