flutter小计

2020-09-17  本文已影响0人  woniu

一、常用的第三方插件

名称 描述
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 基本跳转
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的钩子函数:

onGenerateRoute: (settings) {
  if (settings.name == "/about") {
    return MaterialPageRoute(
      builder: (ctx) {
        return HYAboutPage(settings.arguments);
      }
    );
  }
  returnnull;
}
2.4 onUnknownRoute

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

  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: (settings) {
  return MaterialPageRoute(
    builder: (ctx) {
      return UnknownPage();
    }
  );
},

结果如下图所示:


错误路由界面
上一篇 下一篇

猜你喜欢

热点阅读