Begin-Flutter
前言
简单概括下这股跨平台开发的清流:Google出品,Dart语言,FlutterEngine引擎,响应式设计模式,原生渲染。Flutter开发是目前跨平台技术中性能最优,热重载最丝滑,Google大厂也在Flutter中文网中为iOS、Android开发者迁移到Flutter作了文档,怀着想装比的心入坑了,弄明白了知乎所以,接下来当然是制定属于自己的学习计划~(≧▽≦)/~万事俱备只欠东风~
作为一个iOSer,我先从Flutter For iOSer中触类旁通Flutter的一些概念,然后根据Flutter中文网的目录一步步实战应用-(
环境搭建
根据文档搭建Flutter开发环境 · 《Flutter实战》,搭建完成终端检验为下图所示。
框架结构
Flutter框架结构分为Framework和Engine,而我们主要基于Framework开发,从图中可以了解,Flutter通过Engine绘制Widget,Dart代码通过AOT编译为原生代码。
实战DEMO
1 | //导入组件库 |
嗯敲完实战DEMO,云里雾里~~不妨将文档的解释敲成代码注释,帮助理解
Flutter布局
常用布局类Widgets
- Container 常用※※※只有一个子 Widget。默认充满,包含了padding、margin、color、宽高、decoration 等配置。
1 | Container( |
- Column&Row 常用※※※横竖布局,可以有多个子Widget
1 | //主轴方向,Column的竖向、Row我的横向 |
- Expanded 在Column和Row中充满,只有一个子Widget,可以设置flex属性决定比例
- Padding 只有一个子Widget,常用设置padding
1 | new Padding(padding: EdgeInsets.all(10.0)) |
- Stack 可以有多个子 Widget。 子Widget堆叠在一起
- Center 只有一个子 Widget。只用于居中显示,常用于嵌套child,给child设置居中
- ListView 可以有多个子Widget
常用呈现类Widgets
- MaterialApp一般作为APP顶层的主页入口,可配置主题、多语言、路由、标题、应用首页
- Scaffold一般用户页面的承载Widget,包含appbar、snackbar、drawer等material design的设定
- Appbar一般用于Scaffold的appbar ,内有标题,二级页面返回按键等,当然不止这些,tabbar等也会需要它
- Text 显示文本,几乎都会用到,主要是通过style设置TextStyle来设置字体样式等
- RichText富文本,通过设置TextSpan,可以拼接出富文本场景
- TextField文本输入框
new TextField(controller: //文本控制器, obscureText: "hint文本");
- Image 图片加载
new FadeInImage.assetNetwork( placeholder: “预览图”, fit: BoxFit.fitWidth, image: “url”);
- FlatButton按键点击
new FlatButton(onPressed: () {},child: new Container());
列表页实战
1 | class ListRoute extends StatefulWidget { |
[Flutter Layout]就是要在build中学会用HTML方式堆积Widget,熟练运用Row、Column、Container、Padding等Widget布局UI,相当于iOS中的约束,尝试手写一个自定义ITEM的ListView吧
- 参考资料Flutter完整开发实战详解 | 掘金 Thanks~
Thanks for your reading~