随笔分类 - Flutter学习
摘要:第一步:配置依赖 虽然现在freezed已经更新到v3版本了,但是v3目前还是存在很多bug比如无法生成g文件,70多个issue大部分是v3迁移的问题。所以还是建议先不急着升级v3,freezed使用2.5.8,freezed_annotation使用2.4.4。 dependencies: fr
阅读全文
摘要:根组件配置 应用入口配置: 使用 GetMaterialApp 作为应用的根组件,它是 MaterialApp 的增强版本,提供了路由管理等额外功能。 初始路由设置: 通过 initialRoute 参数指定了应用启动时加载的初始页面为 Routes.homePage,这通常是一个字符串常量,定义在
阅读全文
摘要:插件地址,详细用法可以看插件里的example 插件地址:https://github.com/JettChen12/flutter_foldable_wrap 演示 简介 在flutter中,一般我们使用流式布局我们一个wrap套上就完事,wrap组件确实能解决一大部分布局需求。 但是,在产品开发
阅读全文
摘要:枚举类Enum 简单描述应用场景: 通过接口异步获取数据时,发起请求后,一般有三种状态 等待:LOADING 成功:SUCCESS 错误:ERROR enum getDataFromApi( LOADING,//等待 SUCCESS,//成功 ERROR //错误 ) 这样就可以获取接口数据的代码解
阅读全文
摘要:Listener组件 对触摸,手势的监听。 本文是对下面链接文章的笔记总结: 详情请看:深入理解Flutter的Listener组件 Listener组件属性 const Listener({ Key key, this.onPointerDown, this.onPointerMove, this
阅读全文
摘要:单例模式 介绍 确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 实现 普通实现 class Singleton { ///静态实例 static Singleton? _instance; /// 私有的命名构造函数,在此处初始化 Singleton._internal(); //
阅读全文
摘要:Get路由传值方法 跳转路由First --> Second 1:第一种方法 Second页面的的controller利用构造函数接收由First传过来的值,在binding注入时接收First页面传过来的值。 ///second_state ///定义要从First接收的变量,并在构造函数里初始化
阅读全文
摘要:可拖拽的流式布局 说明 本次实现的可拖拽的瀑布流布局,使用的是flutter_staggered_grid_view库,其他流式布局可详细这个库可以让gridview的item自由排列等等。 拖拽功能是使用的官方组件Draggable和DragTarget,详细代码可以看demo。 本文完整示例de
阅读全文
摘要:InheritedWidget&Notification 说明: InheritedWidget用来从上往下共享数据,通过context流通 Notification用来从下往上分发通知,通过context流通 完整示例demo InheritedWidget 定义一个类“A”继承Inherited
阅读全文
摘要:表单传值 说明: INFO页面通过路由到DETAIL页面,并把表单数据传过去。 通过map传值的方式代码阅读起来困难,而且难维护,写变量时容易出错。 通过传state的方法,代码看起来更加简洁可读。 STEP01 声明要接收的变量 ///DETAIL state class DetailState{
阅读全文
摘要:Getx状态管理 接口 https://jdmall.itying.com/api/pcate 示例demo地址 状态管理小demo 结构图 示例图 Model class GoodsModel { List<Result>? result; GoodsModel({this.result}); G
阅读全文
摘要:Flutter Getx 1:模块介绍 states状态层 state只专注数据,需要使用数据,直接通过state获取。 定义变量只在state,定义可监听字符串alice。 import 'package:get/get.dart'; class HomeState{ ///定义可监听变量 RxS
阅读全文
摘要:fish_redux是怎么相互传值的 声明: 本文只说明fish_redux里的路由传参,以及两个页面是怎么得到对方传过来的参数的。 对于demo的计数加1并刷新页面的方法我在另一篇文章有写过,所以本文不会说。 路由传值demo可看这里示例demo 下文的CountPage = FirstPage,
阅读全文
摘要:fish_redux自定义tabController STEP01 page ///混入SingleTickerProviderMixin class TabbarPage extends Page<TabbarState, Map<String, dynamic>> with SingleTick
阅读全文
摘要:fish_redux是怎么分工合作的 01: 声明 本文章只是本小白的拙见,fish_redux对我来说还是比较难的框架,学习了几天,很多东西仍然一知半解。所以自己写点浅薄的东西记录一下自己的理解,如果有幸被大佬看到,出错的地方请不吝赐教。 02: 流程图 放上小呆呆大佬画的流程图,基本结构就是这样
阅读全文
摘要:Page连接Component Page连接他的component,通过连接器connector 每一个component都需要一个connector来进行和page的连接, Component和Component的连接同理,一模一样。 比如有一个Page : homepage,有一个List组件作
阅读全文
摘要:流式布局列表 SingleChildScrollView+Wrap STEP01 : 生成wrap布局 Widget getItem() { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: <Widget>
阅读全文
摘要:Provider状态管理 定义实体类 //goods_entity.dart class GoodsEntity { //定义实体类中的属性变量 late int _id; late String _name; late double _price; late String _url; late S
阅读全文
摘要:下拉加载更多 定义变量 //定义控制器 final ScrollController _scrollController = ScrollController(); //存储列表,远程数据的话应先处理数据 //此处Data类型是List<Map<String,Object>> List _list
阅读全文
摘要:官方自带的下拉刷新组件 定义刷新方法 //下拉刷新数据 Future<Null> _handleRefresh() async { await Future.delayed(Duration(seconds: 2)); setState(() { //此处获取数据 _getData() }); }
阅读全文