首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

flutter 起步

1、在flutter里面,一切皆组件,在组件里面撑起flutter半边天的一个是无状态StatelessWidget组件,一个是有状态的StatefulWidget组件2、常用组件container:容器组件...控件类型从StatelessWidget到StatefulWidget的转换,因为Flutter在执行热刷新时会保留程序原来的state,而某个控件从stageless→stateful后会导致Flutter...修改了main函数中创建的根控件节点,Flutter在热刷新后只会根据原来的根节点重新创建控件树,不会修改根节点。某个类从普通类型转换成枚举类型,或者类型的泛型参数列表变化,都会使热刷新失败。...在 Material 设计中定义的单个界面上的各种布局元素,在 Scaffold 中都支持。Scaffold 有下面几个主要属性:appBar - 显示在界面顶部的一个 AppBar。...actions → List - 一个 Widget 列表,代表 Toolbar 中所显示的菜单,对于常用的菜单,通常使用 IconButton 来表示;对于不常用的菜单通常使用 PopupMenuButton

4.4K20

使用flutter基础入门

输出原生程序 dart语言特性 箭头函数,一行表达式,()=>expression 匿名函数,(){} future只有then、stream接收多个异步函数结果sucess、fail dynamic任意类型...,cast自动转换为具体类型 命令行 flutter 新建项目,flutter create 查看连接设备,flutter devices(vscode flutter select device选中输出设备...的devtool widget Widget build(BuildContext context)函数,通过json配置构建ui StatefulWidget有状态窗口(多一个绑定前端的变量)、StatelessWidget...无状态窗口 Container(盒子模型容器布局,支持padding等属性),Center(居中布局),Padding(填充布局),Align(对齐布局),Colum(垂直布局),Row(水平布局),Expanded...搭档 多元素同步 sync* Iterable yield、yield*(函数生成器,后面跟函数) 单元素异步 async Future await 多元素异步 async* Stream yield

1.1K20

Flutter中的Key

这意味着 Key 是分配给 Widget 的唯一标识,通过 key 可以与其他 Widget 区分开来。对于 WidgetWidget 树中改变位置的情况,Key 帮助保留它们的状态。...当渲染 widget 时,Flutter 不仅会构建 widget 树,同时也会构建其对应的元素树。元素树持有 widget 树中 widget 的信息及其子 widget 的引用。...在修改和重新渲染的过程中,Flutter 查找元素树以查看其是否已改变,以便在元素未改变时可以复用旧元素。 ---- 批注及说明: ① widget 树相当于配置,元素树相当于实例对象。...至此,这就是 key 如何在内部工作以及其在修改集合中有状态 widget 方面的用处。 键类型 Key 一般分两种类型: 本地类型 全局类型 本地键 在拥有相同父元素元素中必须是独特的。...它们通常用于子列表中,其中每个子项的值是唯一且恒定的。 对象键 与值键相同,唯一的区别是它接受一个包含数据的类对象。

1.4K10

Flutter

下一个节点在Widget树中是Container Widget,它的类型和原来是一样的,但是它的颜色变化了,所以RenderObject的配置也会发生对应的变化,然后它会重新渲染,其他的对象都保持不变。...页面中的各界面元素Widget)以树的形式组织,即控件树。Flutter 通过控件树中的每个控件创建不同类型的渲染对象,组成渲染对象树。...但,对于定高的列表元素,我强烈建议你提前设置好这个参数的值。...但如果提前设置好 itemExtent,ListView 则可以提前计算好每一个列表元素的相对位置,以及自身的视图高度,省去了无谓的计算。...childCount: 100,//列表元素个数 ), ), ]); ScrollController 与 ScrollNotification ScrollController

1.9K40

Flutter 中 Padding、Row 、Column 、Expanded 组件详解

Paddiing 组件 在 html 中常见的布局标签都可以使用 padding 属性,但是 Flutter 中很多 Widget 是没有 padding 属 性,这个时候我们可以用 Padding 组件处理容器与子元素直接的间距...值的类型Widget; 代码示例: import 'package:flutter/material.dart'; void main(){ runApp(MyApp()); } // 抽离成一个单独的组件...值的类型MainAxisAlignment; 2. crossAxisAlignment:次轴的组件对齐方式。值的类型CrossAxisAlignment; 3. children:组件子元素。...值的类型Widget; 代码示例: import 'package:flutter/material.dart'; void main(){ runApp(MyApp()); } // 抽离成一个单独的组件...值的类型MainAxisAlignment; 2. crossAxisAlignment:次轴的组件对齐方式。值的类型CrossAxisAlignment; 3. children:组件子元素

1.6K10

Flutter 专题】12 ListView 用哪种方式绑定数据?

和尚觉得 **Flutter ** 中 ListView 这个控件很强大,它兼顾了 Android 中的 ScrollView 和 ListView 两个控件的效果,既可以当列表用也可以充当可滑动布局。...列表 item -> ListTile Flutter 很贴心的提供了一种常见的列表 item 样式,可以包括前后图标以及大小标题的样式;和尚特意了解了一下 ListTile 的基本属性,如下: const...-> ListView Flutter 中 ListView 用法与 Android 中类似,首先添加数据,之后绑定列表Flutter 中绑定列表有四种方式,分别是 默认 List / ListView.builder...默认 List 和尚理解默认 List 方式,是把数据 Iterable 添加到列表中,之后直接添加到 ListView 即可;如下: List _list = new List...ListView.builder 和尚理解 builder 方式很像对话框类型逐个添加需要的属性;需要在 builder 中添加列表数据;而添加分割线的方式更让和尚体会到 Flutter 一切都是

1.6K81

Flutter》-- 6.高级组件

参阅书籍: 《Flutter跨平台开发入门与实践》-- 向治洪(著) 6. 高级组件 6.1 可滚动组件 对于列表和长布局的显示溢出问题,可以使用Flutter提供的可滚动组件来处理。...,即使这部分区域不可见,也会被加载处理 this.slivers = const [],//列表元素 int semanticChildCount,//子项数量...6.2.2 ListView.builder 使用ListView.builder创建的列表是基于Sliver的延迟加载创建的,渲染性能比较高,适合用于列表元素比较多的情况。...extends StatelessWidget { final _items = List.generate(100, (i) => Container( padding...(_items), ) ) ); } } 示例效果: 如果滚动视图中出现列表嵌套的场景,为了造成滚动时的冲突,需要对子组件添加禁止滚动属性。

10.5K20

Flutter UI原理

例如,Container是一个常用的Widget,由几个负责布局,绘制,定位和大小调整的小部件组成。...2、Layer层级 3、Widget与Element 在Flutter中,Widget的功能是“描述一个UI元素的配置数据”,它就是说,Widget其实并不是表示最终绘制在设备屏幕上的显示元素,而只是显示元素的一个配置数据...GestureDetector允许我们识别不同的手势,例如点击(用于检测按下按钮)和拖动(用于滑动列表)。 通常情况,我们使用许多基础基本的widget,并构建自己的widget。...当Widget类型与以前相同时,Flutter不需要重新创建昂贵的RenderObject,只需更新其可变配置即可。...接下来,借助Elements树中Elements的帮助,Flutter将新Widgets树与旧的Widegt树进行比较。 比较的基本规则:检查旧Widget和新Widget是否来自同一类型

3.2K20

Flutter | 滚动组件,ListView,GridVIew等

可滚动组件 当组件内容超过当前显示视口(ViewPort)时,如果没有特殊处理,Flutter 就会提示 Overflow 错误,为此,Flutter 提供了多种可滚动组件,用于显示列表和长布局; 可滚动组件都直接或间接的包含一个...,被包裹的可以避免列表重绘,但是列表重绘的开销非常小(如一个颜色块,或者一个较短的文本) 时,添加 RepaintBoundary 反而会更加高效。...@required IndexedWidgetBuilder itemBuilder, int itemCount, ... }) 复制代码 itemBuilder:列表的构建器,类型为 IndexedWidgetBuilder...>[ //..... ], ); 复制代码 GridView.builder 上面介绍的都需要一个子 Widget数组 作为其子元素,这些方式会提前创建好 widget,只适用于 widget...版的可滚动组件和 非 Sliver 版的组件最大的区别就是前者包含滚动模型(自身不能滚动),而后者包含滚动模型。

8.4K20

Flutter可滑动组件

Flutter可滑动组件 1. ListView 1.1 ListView介绍 移动端数据量比较大时,一般都是通过列表来进行展示的,比如商品数据、聊天列表、通信录、朋友圈等。...在Flutter中,我们也有对应的列表Widget,就是ListView。 注意:在Flutter里面想要实现滑动效果,都需要在组件外部包裹滚动的视图。...Flutter官方文档中提到,ListView的默认构造器建议在需要展示的元素个数较少时使用,在展示的元素数量较多时,建议使用ListView.builder() 方法构造视图。...4.2 ScrollController 在Flutter中,Widget并不是最终渲染到屏幕上的元素(真正渲染的是RenderObject),因此通常这种监听事件以及相关的信息并不能直接从Widget...NotificationListener是一个Widget,模板参数T是想监听的通知类型,如果省略,则所有类型通知都会被监听,如果指定特定类型,则只有该类型的通知会被监听。

7.1K30
领券