自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 Dart的垃圾回收器

1.介绍Flutter使用Dart作为开发语言和运行时机制,Dart一直保留着运行时机制,无论是在调试模式(debug)还是发布模式(release),但是两种构建方式之间存在很大的差异。在调试模型下,Dart将所有的管道(需要用到的所有配件)全部装载到设备上:运行时,JIT(the just-in-time)编译器/解释器(JIT for Android and interpreter for iOS),调试和性能分析服务。

2023-08-25 20:27:54 105 1

原创 Widget-Element-RenderObject

我们之前在创建Widget时,经常使用StatelessWidget和StatefulWidget,这种Widget只是将其他的Widget在build方法中组装起来,并不是一个真正可以渲染的Widget(在之前的课程中其实有提到)。抽象方法是必须被子类实现的,但是它的子类SingleChildRenderObjectWidget也是一个抽象类,所以可以不实现父类的抽象方法。在Widget中,Element被创建,并且在创建时,将this(Widget)传入了;

2023-08-23 19:46:03 97

原创 json转mdodel

UserFromJson(json)和_UserToJson(this)调用的该方法目前会报错,需要json_serializable来生成。优点:完全是自己可控的,并且需要哪些字段就转化哪些字段,对于不需要的,忽略即可;由于序列化数据代码不再需要手动编写或者维护,你可以将序列化 JSON 数据在运行时的异常风险降到最低;创建对应的模型(以json_serializable 的方式,创建完成后代码是。6.toString方法不是必须的,是待会儿进行测试的。4.另外,这里必须有我们的构造方法。

2023-08-23 13:49:28 90

原创 9flutter案例

通过LayoutBuilder可以获取到父Widget的宽度和高度;:放入多个BottomNavigationBarItem类型;:内部会根据设置的个数和宽高确定密度(虚线的空白间隔);我这里是根据方向获取父Widget的宽度和高度来决定的;:当item的数量超过2个时,需要设置为fixed;:根据虚线的方向确定自己虚线的宽度;:根据虚线的方向确定自己虚线的高度;:监听哪一个item被选中;:虚线的颜色,不多做解释;:当前选中哪一个item;:未选中时的文本大小;:选中时的文本大小;

2023-08-23 13:49:24 43

原创 flutter网络请求

dio是一个强大的Dart Http请求库,支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载、超时、自定义适配器等...http 是 Dart 官方提供的另一个网络请求类,相比于 HttpClient,易用性提升了不少。在Flutter中常见的网络请求方式有三种:HttpClient、http库、dio库。发起请求, 等待请求,同时您也可以配置请求headers、 body。关闭请求, 等待响应.创建 client.

2023-08-22 22:55:03 224 1

原创 flutter异步

多线程,比如Java、C++,我们普遍的做法是开启一个新的线程(Thread),在新的线程中完成这些异步的操作,再通过线程间通信的方式,将拿到的数据传递给主线程。3、网络请求成功后,会执行then中传入的回调函数,这也是一个事件,该事件被放入到事件循环中执行,执行完毕后,事件循环将其丢弃。1、当用户发生点击的时候,onPressed回调函数被放入事件循环中执行,执行的过程中发送了一个网络请求。2、网络请求发出去后,该事件循环不会被阻塞,而是发现要执行的onPressed函数已经结束,会将它丢弃掉。

2023-08-18 20:47:36 92 1

原创 9案例分析

未选中star的展示:根据个数和传入的unselectedImage创建对应个数的Widget即可;:可选参数,最高评分,根据它来计算一个比例,默认值为10;:未选中星星的颜色(该属性是使用默认的star才有效);:选中星星的颜色(该属性也是使用默认的star才有效);计算剩余比例的评分,对最后一个Widget进行裁剪;1.目的:实现功能展示的同时,提供高度的定制效果。计算出满star的个数,创建对应的Widget;:星星的大小,决定每一个star的大小;:定制未选中的star;:定义选中时的star;

2023-08-16 19:00:45 40 1

原创 8滚动widget

将JSON转成了List和Map类型后,就可以将List中的一个个Map转成Model对象,所以我们需要定义自己的Model。

2023-08-15 21:41:41 29 1

原创 07 布局widget

设置子Widget到父Widget的边距(你可以称之为是父组件的内边距或子Widget的外边距)。Center组件继承自Align,只是将alignment设置为Alignment.center。Container在开发中被使用的频率是非常高的,特别是我们经常会将其作为容器组件。实现一个视图,有一个背景颜色、图像、有固定的尺寸、需要一个边框、圆角等效果。代码Align换成Center。1.4Container组件。1.3 Padding组件。1.2 Center组件。1.1 Align介绍。

2023-08-06 21:53:21 52 1

原创 06 widget

控制文本布局的参数: 如文本对齐方式 textAlign、文本排版方向 textDirection,文本显示最大行数 maxLines、文本截断规则 overflow 等等,这些都是构造函数中的参数;控制文本样式的参数: 如字体名称 fontFamily、字体大小 fontSize、文本颜色 color、文本阴影 shadows 等等,这些参数被统一封装到了构造函数中的参数 style 中;border:输入框的边框,默认底部有一个边框,可以通过InputBorder.none删除掉。

2023-08-05 17:19:19 27 1

原创 05 statelesswidght

一个类继承自State,用于记录StatefulWidget会变化的状态,并且根据状态的变化,构建出新的Widget;如何可以让Flutter知道我们的状态发生改变了,重新构建我们的Widget呢?那么,我们就可以将需要保存的状态保存在MyState中,因为它是可变的;一个类继承自StatefulWidget,作为Widget树的一部分;在示例代码中,当我们点击按钮时,界面上显示的数据会发生改变;发生改变时,我们对应的Text上显示的内容也要发生改变;StatefulWidget需要创建两个类;

2023-08-04 19:43:02 47 1

原创 04案例分析

这意味着整个应用我们都会采用MaterialApp风格的一些东西,方便我们对应用的设计,并且目前我们使用了其中两个属性;所以我们给MaterialApp的home属性传入了一个Scaffold对象,作为启动显示的Widget;body是页面的内容部分,我们传入了之前已经创建好的Center中包裹的一个Text的Widget;并且,我们给Text组件设置了一个属性:style,对应的值是TextStyle类型;可以使用Material库,直接使用其中的一些封装好的组件来完成一些结构的搭建。

2023-08-02 19:58:33 29 1

原创 02 Dart基础语法

【代码】Dart基础语法。

2023-07-31 21:14:13 49

原创 01认识flutter

1.4.1.1 图像连续播放超过16诊,人眼感觉流畅。flutter向GPU提供数据途径。1.4.1.2 帧率与刷新率。1.4.1.4 三重缓存。1.3.2 跨平台解决方案。1.4.1.3 双重缓存。1.3.1 平台独立开发。1.1flutter介绍。2.1 渲染引擎skia。美观、快速、高效、开放。

2023-07-31 20:14:58 76 1

原创 15状态管理

1.1 分类。

2023-07-26 17:35:52 31

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除