
Flutter
三杯两盏
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Flutter App性能优化关注点
参考:官方文档控制build()消耗避免在build方法中进行重复和高消耗的工作,因为build方法可能会被频繁的调用(当父组件、祖先组件rebuild时,当前组件的build也会被调用)。尝试将大组件拆分为多个小组件。当一个组件的setState被调用时,它的所有子孙组件也会rebuild。因此如果只是某一个子组件发生了变化,那就尽量只调用该子组件的setState,而不要去调用其父组件或祖先组件的setState。缓存没有变化的子树(If a subtree does not change.原创 2020-06-02 17:20:21 · 1001 阅读 · 0 评论 -
Flutter实现3D球
简介这是之前项目中用到的一个3D球控件,实现了文字元素在球面上的分布以及球体滚动时文字外形和运动轨迹的透视效果。因为没有实现丰富的可定制性和通用性,因此这里仅提供源码,并对一些实现要点做简要介绍。若需实现类似效果可以参考。 主要思路建立了一个虚拟的3d坐标系:坐标原点位于球心,Z轴垂直于屏幕并指向屏幕外。根据球面方程将需要绘制的点均匀散布到整个球面上。由点坐标可以得到点在XY平面上的...原创 2020-02-12 17:39:41 · 3580 阅读 · 2 评论 -
水平滚动的数字选择标尺(Flutter)
功能水平滚动的数字选择标尺。支持:选取整数、小数。不同的步进。自定义刻度样式。自定义数字显示的格式、单位。惯性滚动。手指离开后自动对齐。为了使用的灵活性,控件被拆分为两部分,分别是:HorizontalNumberPicker:标尺。HorizontalNumberPickerWrapper:对HorizontalNumberPicker进行简单包装,添加顶部的选中值显示和两...原创 2020-02-11 20:27:02 · 3263 阅读 · 0 评论 -
didUpdateWidget详解
概述只要在父widget中调用setState,子widget的didUpdateWidget就一定会被调用,不管父widget传递给子widget构造方法的参数有没有改变。只要didUpdateWidget被调用,接来下build方法就一定会被调用。子widget首次被加载时的生命周期:initState -> build子widget首次被加载后,如果在父widget中调用...原创 2020-02-04 17:49:48 · 14025 阅读 · 1 评论 -
Flutter常用的布局组件
Flutter中有很多布局组件,看起来纷繁复杂,而实际上其中有很多布局组件都是“过时”的,也就是说它们都有更好更简单的替代品。下面就将我最近半年多Flutter开发中常用的布局组件做一个小归纳。1.常用布局组件Rowhttps://api.flutter.dev/flutter/widgets/Row-class.html构造函数:Row({ Key key, MainAxis...原创 2020-02-04 15:57:40 · 668 阅读 · 0 评论 -
Flutter中的Key和GlobalKey
1.Key参考:https://api.flutter.dev/flutter/widgets/Widget/key.html控制一个widget该如何替换掉树中的另一个widget:如果两个widget的runtimeType 和 key都相等(==),那么会让旧widget所对应的旧element转而指向新widget(即调用element.update);否则,旧element会被从...原创 2019-07-14 08:45:01 · 15123 阅读 · 1 评论 -
Flutter中的路由函数
概述Flutter中,路由(Router)即页面的封装,一个路由内部包含了一个页面。创建路由:MaterialPageRoute route = MaterialPageRoute( builder: (BuildContext context) => MyPage(),);类似于在Android原生中以任务栈来管理Activity,在Flutter中以路由栈来管理路由。跳转到...原创 2019-09-21 21:40:07 · 1427 阅读 · 0 评论