R7的Flutter

FIutter基础

2019-11-25  本文已影响0人  R7_Perfect

最基础布局的特性和使用

类型 作用特点
Container 只有一个子 Widget。默认充满,包含了padding、margin、color、宽高、decoration 等配置。
Padding 只有一个子 Widget。只用于设置Padding,常用于嵌套child,给child设置padding。
Center 只有一个子 Widget。只用于居中显示,常用于嵌套child,给child设置居中。
Stack 可以有多个子 Widget。 子Widget堆叠在一起。
Column 可以有多个子 Widget。垂直布局。
Row 可以有多个子 Widget。水平布局。
Expanded 只有一个子 Widget。在 Column 和 Row 中充满。

基础的widget

类型 作用特点
MaterialApp 一般作为APP顶层的主页入口,可配置主题,多语言,路由等
Scaffold 一般用户页面的承载Widget,包含appbar、snackbar、drawer等material design的设定。
Appbar 一般用于Scaffold的appbar ,内有标题,二级页面返回按键等,当然不止这些,tabbar等也会需要它 。
Appbar 一般用于Scaffold的appbar ,内有标题,二级页面返回按键等,当然不止这些,tabbar等也会需要它 。
Text 显示文本,几乎都会用到,主要是通过style设置TextStyle来设置字体样式等。
RichText 富文本,通过设置TextSpan,可以拼接出富文本场景。
Text 显示文本,几乎都会用到,主要是通过style设置TextStyle来设置字体样式等。
TextField 文本输入框 :new TextField(controller: //文本控制器, obscureText: "hint文本");
Image 图片加载: new FadeInImage.assetNetwork( placeholder: "预览图", fit: BoxFit.fitWidth, image: "url");
FlatButton 按键点击: new FlatButton(onPressed: () {},child: new Container());

和Android对应关系

Android 内容 Flutter 内容 IOS
Views 通过invalid更新 StateXXWidget 通过setState来更新状态 UIView
Views addChild() 或 removeChild() 添加或者删除子 View StateXXWidget 控制子 Widget 的创建 UIView 可动态修改
View动画 通过 XML 文件定义动画,也可以调用 View 对象的 animate() 方法 Animation<double> AnimationController 开控制 animate(withDuration:animations:)
自定义绘制 Canvas和Paint等 CustomPaint CustomPainter实现 CoreGraphics
自定义View 继承 View 自定义Widget 通过组合更小的 Widget 来创建自定义 Widget 继承UIView
Intent 组件间通信使用Intent Navigator Navigator 和 Route,使用intent可以用额外插件 UINavigationController
外部Intent manifest中注册接收 外部Intent manifest中注册接收后,使用MethodChannel通过原生发过来 URL scheme
异步 UI runOnUiThread() Looper Isolate async/await,不能分享内存,setState/SendPort&ReceivePort来更新UI Looper
OkHttp OkHttp http包 'package:http/http.dart' as http
ProgressBar ProgressBar ProgressIndicator ProgressIndicator的子类 UIProgressView
图片 drawable,mipmap 图片 asset Images.xcasset
字符串 string.xml 字符串 代码中 Localizable.strings
gradle pubspec.yaml Podfile
组件生命周期 ActivityLifecycleCallbacks Widgets生命周期 didChangeAppLifecycleState ViewController
LinearLayout Row/Column
RelativeLayout Row/Column Row/Column,Stack Widget,声明孩子相对父亲的布局规则
ScrollView ListView 既是一个 ScrollView,也是一个 ListView UITableView 和 UICollectionView
事件监听 XXListener 事件监听 onPressed,OnTap等 tableView:didSelectRowAtIndexPath:
ListView adapters ListView List<Widget>需要传入一组widget
ListView onItemClickListener ListView 每个widget自我管理事件 GestureRecognizer
ListView notifyDataSetChanged ListView ListView.Builder reloadData
自定义字体 FontFamily pubspec.yaml配置 TextStyle(fontFamily: 'MyCustomFont') info.plist
EditTextView TextField onSubmitted,decoration
主题 manifest中theme MaterialApp ThemeData
上一篇下一篇

猜你喜欢

热点阅读