Flutter
文章平均质量分 89
Flutter系统学习
哆啦A梦z
Android开发工程师
展开
-
dart 中singleWhere()、firstWhere()、lastWhere() 、 where()的区别
singleWhere()用于查找唯一元素,如果不存在或找到多个元素会抛出异常;firstWhere()和lastWhere()分别用于查找第一个和最后一个符合条件的元素;where()则是用于过滤出符合条件的所有元素。原创 2023-11-14 14:32:15 · 444 阅读 · 0 评论 -
Flutter有状态组件StatefulWidget生命周期
StatefulWidget是Flutter中的一个有状态的组件,它的生命周期相对复杂一些。其次,生命周期的调用顺序是。原创 2023-11-13 14:40:18 · 694 阅读 · 0 评论 -
Flutter 手把手国际化
这样就实现了在 语言设置 页面进行语言切换了,但是重启app后语言又还原成中文了,所以采用shared_preferences库保存上一次语言。intl_zh.arb 和 intl_en.arb 是以json结构配置的,所以我们配置如下。这样页面里面的组件就引用到了语言管理类中的字段,但是还差一步初始化。分别代表中文和英文的语言数据,所以只需要修改它俩即可,文件生成完了,接下来就是把中英文插入相应的位置了,语言配置好了,接下来就是怎么引用它们了。这样语言就都配置好了,切换语言只需要调用。原创 2023-11-03 11:23:03 · 1196 阅读 · 0 评论 -
Flutter(学前必看)基础
Dart 中 var 变量一旦赋值,类型便会确定,则不能再改变其类型// 下面代码在dart中会报错,因为变量t的类型已经确定为String,// 类型一旦确定后则不能再更改其类型。t = 1000;eat();run() {library关键字通常在定义库时,我们可以使用library关键字给库起一个名字。但目前我发现,库的名字并不影响导入,因为import语句用的是字符串URIpart关键字在之前我们使用student.dart作为演练的时候,只是将该文件作为一个库。原创 2023-10-26 16:39:41 · 255 阅读 · 0 评论 -
Flutter(九)Flutter动画和自定义组件
无论是MaterialPageRoute、CupertinoPageRoute,还是PageRouteBuilder,它们都继承自PageRouteMaterialPageRoute组件,它可以使用和平台风格一致的路由切换动画,如在iOS上会左右滑动切换,而在Android上会上下滑动切换CupertinoPageRoute是Cupertino组件库提供的iOS风格的路由切换组件,它实现的就是左右滑动切换。自定义切换动画优先考虑使用PageRouteBuildercontext,原创 2023-08-28 11:45:11 · 1402 阅读 · 0 评论 -
Flutter(八)事件处理与通知
一次完整的事件分为三个阶段:手指按下、手指移动、和手指抬起,而更高级别的手势(如点击、双击、拖动等)都是基于这些原始事件的。原创 2023-08-04 16:55:16 · 1305 阅读 · 0 评论 -
Flutter(七)功能型组件
需求:再按一次退出应用用户在1秒内点击两次返回按钮时,则退出;如果间隔超过1秒则不退出。原创 2023-05-29 10:56:54 · 1215 阅读 · 0 评论 -
Flutter(六)可滚动组件
Scrollable :用于处理滑动手势,根据滑动偏移构建 Viewport。Viewport:显示的视窗,即列表的可视区域;Sliver:视窗里显示的元素。具体布局过程:Scrollable 监听到滑动后,根据滑动偏移构建 Viewport ,Viewport 将当前视图信息和配置信息通过 SliverConstraints 传递给 Sliver,Sliver 中对子组件按需进行构建和布局。顶部和底部灰色的区域为。原创 2023-04-10 10:19:13 · 3733 阅读 · 0 评论 -
Flutter(十)网络请求和文件
注意,onHttpClientCreate会在当前dio实例内部需要创建HttpClient时调用,所以通过此回调配置HttpClient会对整个dio实例生效,如果应用需要多种代理或证书校验策略,可以创建不同的dio实例来分别实现。Android 和 iOS 的应用存储目录不同,PathProvider (opens new window)插件提供了一种平台透明的方式来访问设备文件系统上的常用位置。()来获取应用程序的文档目录,该目录用于存储只有自己可以访问的文件。演示WebSocket通信过程。原创 2023-08-28 16:35:30 · 787 阅读 · 0 评论 -
Flutter(五)容器类组件
如果我们只想截取图片中部40×30像素的范围应该怎么做?这时我们可以使用CustomClipper来自定义剪裁区域1.自定义一个CustomClipper//getClip()是用于获取剪裁区域的接口,由于图片大小是60×60,我们返回剪裁区域为Rect.fromLTWH(10.0, 15.0, 40.0, 30.0),即图片中部40×30像素的范围 @override//shouldReclip决定是否重新剪裁。原创 2023-03-10 15:25:43 · 814 阅读 · 0 评论 -
Flutter(四)布局类组件
布局类组件就是指直接或间接继承(包含)和的Widget它们一般都会有一个child或children属性用于接收子 Widget。继承关系 Widget > RenderObjectWidget > (Leaf/SingleChild/MultiChild)RenderObjectWidgetRenderObjectWidget类中定义了创建、更新RenderObject的方法,子类必须实现他们RenderObject:渲染UI界面的。原创 2023-03-09 17:23:55 · 1334 阅读 · 0 评论 -
Flutter(三)基础组件
LinearProgressIndicator和CircularProgressIndicator,并没有进度条尺寸的参数,但都是取父容器的尺寸作为绘制的边界,所以可以使用尺寸限制类Widget,如ConstrainedBox、SizedBox 来指定尺寸。原创 2023-02-28 09:39:49 · 538 阅读 · 0 评论 -
Flutter(二)第一个Flutter应用
Flutter 中是通过 Widget 嵌套 Widget 的方式来构建UI和进行实践处理的,所以记住,Flutter 中万物皆为Widget一个 StatefulWidget 类会对应一个 State 类,State表示与其对应的 StatefulWidget 要维护的状态当State被改变时,可以手动调用其setState()方法通知Flutter 框架状态发生改变,Flutter 框架在收到消息后,会重新调用其build方法重新构建 widget 树,从而达到更新UI的目的。原创 2023-02-27 11:46:10 · 1220 阅读 · 0 评论 -
Flutter(一)介绍、Dart语言简介
纯原生开发主要面临动态化更新和开发成本两个问题,而针对这两个问题,诞生了一些跨平台的动态化框架Flutter 是 Google 推出并开源的移动应用开发框架,主打跨平台、高保真、高性能。开发者可以通过 Dart 语言开发 App,一套代码同时运行在 iOS 和 Android平台Dart 中 var 变量一旦赋值,类型便会确定,则不能再改变其类型// 下面代码在dart中会报错,因为变量t的类型已经确定为String, // 类型一旦确定后则不能再更改其类型。t = 1000;原创 2023-02-13 16:10:33 · 5118 阅读 · 2 评论