首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Flutter 基础
梦喂马
创建于2023-06-27
订阅专栏
Flutter 基础看一次,进阶一次...
等 5 人订阅
共60篇文章
创建于2023-06-27
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
flutter项目添加IOS小组件项目后,XCode编译失败问题
flutter项目添加一个IOS小组件功能,看文档觉得挺容易,上来就踩了个坑,记录一下。 新建IOS “Widget Extension”项目后,在XCode的小组件预览界面编译时直接报错了,报错信息
Dart 语言里的类型体系
Dart 是类型安全的编程语言:Dart 使用静态类型检查和 运行时检查 的组合来确保变量的值始终与变量的静态类型或其他安全类型相匹配。尽管类型是必需的,但由于 类型推断,类型的注释是可选的。 静态类
别名
一个声明和使用名为IntList的类型别名的示例: 类型别名可以有类型参数: 在大多数情况下,建议对函数使用内联函数类型而不是typedef。但是,函数typedefs仍然有用:
泛型
为什么要使用泛型? 泛型通常是类型安全所必需的,但它们的好处不仅仅是让代码运行: 正确指定泛型类型可以生成更好的代码。 可以使用泛型来减少代码重复。 如果希望列表仅包含字符串,则可以将其声明为List
List 运算符
运算符 扩展运算符 Dart 在列表、映射和集合字面量中支持扩展运算符( ...) 和 可空扩展运算符( ...?)。扩展运算符提供了一种将多个值插入集合的简洁方法。 例如,可以使用扩展运算符 (
Flutter 的 Records
Records语法 Records表达式是用逗号分隔的命名或位置字段列表,括在括号中: Records类型注释是用括号括起来的逗号分隔的类型列表。您可以使用记录类型注释来定义返回类型和参数类型。例如,
基本类型
1、将字符串转换为数字或将数字转换为字符串的方法: 2、文字数字是编译时常量。许多算术表达式也是编译时常量,只要它们的操作数是计算结果为数字的编译时常量。 3、创建多行字符串,请使用带有单引号或双引号
Flutter APP入口及主页
main函数为APP入口函数,实现如下: 初始化完成后才会加载UI(MyApp),MyApp 是应用的入口Widget,实现如下: 在上面的代码中: 根widget是MultiProvider,它将主
Flutter 全局变量及共享状态
1 全局变量-Global类 在“lib/common”目录下创建一个Global类,它主要管理APP的全局变量,定义如下: init()需要在App启动时就要执行,所以应用的main方法如下: 一定
Flutter APP代码结构
工程目录 Dart代码都在“lib”文件夹下,根据技术选型和经验在lib文件下创建了如下目录: 文件夹 作用 common 一些工具类,如通用方法类、网络接口类、保存全局变量的静态类等 l10n 国际
Flutter 绘制原理
Flutter中和绘制相关的对象有三个,分别是Canvas、Layer 和 Scene: Canvas:封装了Flutter Skia各种绘制指令,比如画线、画圆、画矩形等指令。 Layer:分为容器
Flutter Layout流程
组件有子组件,则在 performLayout 中需要调用子组件的 layout 方法先对子组件进行布局,看一下 layout 的核心流程: 简单来讲布局过程分以下几步: 确定当前组件的布局边界。 判
Flutter markNeedsLayout 、flushLayout()
当组件布局发生变化时,它需要调用 markNeedsLayout 方法来更新布局,它的功能主要有两个: 将自身到其 relayoutBoundary 路径上的所有节点标记为 “需要布局” 。 请求新的
Flutter 布局更新
理论上,某个组件的布局变化后,就可能会影响其他组件的布局,所以当有组件布局发生变化后,最笨的办法是对整棵组件树 relayout(重新布局)!但是对所有组件进行 relayout 的成本还是太大,所以
Flutter 布局(Layout)过程
Layout(布局)过程主要是确定每一个组件的布局信息(大小和位置),Flutter 的布局过程如下: 父节点向子节点传递约束(constraints)信息,限制子节点的最大和最小宽高。 子节点根据约
Flutter 渲染管线(rendering pipeline)
一次绘制过程,称其为一帧(frame) Flutter 可以实现60fps(Frame Per-Second)就是指一秒钟最多可以触发 60 次重绘,FPS 值越大,界面就越流畅 Flutter中 的
Flutter启动流程
1、应用启动 Flutter的入口在"lib/main.dart"的main()函数中,它是Dart应用程序的起点。在Flutter应用中,main()函数最简单的实现 可以看main()函数只调用了
Flutter Element 树
一、Element就是Widget在UI树具体位置的一个实例化对象,大多数Element只有唯一的renderObject,但还有一些Element会有多个子节点,如继承自RenderObjectEl
Flutter 插件
一、Flutter 本质上只是一个 UI 框架,运行在宿主平台之上,Flutter 本身是无法提供一些系统能力,比如使用蓝牙、相机、GPS等,因此要在 Flutter 中调用这些能力就必须和原生平台进
Flutter 使用WebSockets
Http协议是无状态的,只能由客户端主动发起,服务端再被动响应,服务端无法向客户端主动推送内容,并且一旦服务器响应结束,链接就会断开(见注解部分),所以无法进行实时通信。WebSocket协议正是为解
下一页