文章目录
前言
转变思维
命令式
声明式
结论
总结
前言
flutter 近两年在江湖上崛起的非常迅猛,业已成为移动开发中不的不重视的一股力量。如果你是一个有追求的ios/android程序员,我想你非常有必要尝试一下。
我接触android开发也有几年了,前段时间公司大力推广flutter技术,所以有幸尝试了一下。本人一直信奉善于总结是不断进步的不二法宝,这样你才能不断的超越同行,不被裁员,所以在此准备以切身体验提供一些快速掌握flutter的一些技巧。
转变思维
其实移动开发者学习flutter,最关键的就是要转变思维。
众所周知,flutter的定位是一套跨平台的ui工具箱,所以ui是学习flutter的主要矛盾。下面是官方定义:
flutter is google’s ui toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase
flutter的ui设计采用的是声明式的风格,而android/ios采用的是命令式风格。 由于我们习惯了命令式风格,突然转向flutter的话,总是会以命令式的思维去思考,会遇到较大麻烦。只要转变了思维,对于一个有经验的android/ios开发者而言,flutter就变得非常简单了。那么什么是声明式风格?什么又是命令式风格呢?多说无益,实例走起…
假设现在有一个很简单的需求: ui上有个方块,要求根据不同的情形展示不同的颜色,如下图所示:
下面我们分别用命令式与声明式实现上面的需求,看看有什么区别
命令式
上面的伪代码展示了,不同条件下,我们通过调用view对象的方法setcolor来修改其颜色属性,从而达到改变其颜色的需求。
可见,命令式是通过修改ui对象的状态来达到改变ui显示样式的,这就意味着此ui对象必须是可变的,这就要求开发者负责维护这些ui对象的状态。
声明式
上面的伪代码展示了,不同的条件下,我们构建新的颜色不一样的view对象来实现改变其颜色的需求。
可见,声明式可以使view对象为不可变对象,每次改变ui都是构建一个新的ui对象,而不是去修改其属性。
结论
所以在使用flutter构建ui时千万不要想着去修改ui对象的状态(属性),如果ui状态变了,例如textview的内容从i love android 变成了i love flutter, 不要想着调用textview对象的方法去修改其文本,而是要以i love flutter为文本去构建一个新的textview对象。剩下的就交给flutter框架吧,其会帮你重新渲染那些必要的部分。
在flutter中状态和ui(widget)是分开的,当我们要刷新ui的时候,只需要准备好状态,然后flutter框架就会使用这些新的状态重新构建新的widget。
让我们通过一个实例感受一下
下面的代码,构建了如下一个非常简单的页面,由于我们isloveandroid为true,所以flutter就为我们构建了一个展示i love android的text控件。
总结
只要转变了思维,在使用flutter搭建ui的时候就会显得很顺畅,特别是设计复杂ui的时候,不会进入死胡同。
TC-PR-200M系列200MHz模拟光探测模块
网络冗余技术应用
华为平板M6系列EMUI10公测开启 实现智慧全连接
比亚迪元PLUS在尼泊尔上市 助力尼泊尔交通电气化进程
紫光展锐荣膺责任商业联盟(RBA)银牌认证,获国际认可
Flutter的一些技巧
BH1417F锁相环立体声发射板
中国集成电路产业需坚持开放合作 在国际竞争中获得市场认可才算是真正成功
铃木和长安最快年内和平分手,长安汽车只有两年缓冲期
公牛装饰吊扇怎么样 用“芯”爱家四季静享
填充型高导热环氧树脂复合材料的研究进展
自锁开关接线图_自锁开关与轻触开关制区别
加州举办VR短片大赛以唤起海洋环境保护重视
封测厂今年资本支出 大缩水
飞行控制PID算法的作用解析
数字功放音质怎么样,它和模拟功放有哪些区别
圣诞节可以送什么?适合送礼的高性价比蓝牙耳机
储存新技术:原子储存信息正在变为现实
比亚迪发布刀片电池技术,其真实效果到底怎样
传统厨房将被机器人制造、无人机运送的外卖所取代?