flutter常用知识点

学习网站

dart学习网站:dart.goodev.org
flutter中文网:https://flutterchina.club/flutter-for-android/

基础知识

  1. dart 是单线程;一般用aysn await 来处理异步操作 (futture)
  2. 界面基本上都是wighet
  3. 界面用代码来编写,嵌套层级有点多

插件

Flutter定义了三种不同类型的Channel,它们分别是

  • BasicMessageChannel:用于传递字符串和半结构化的信息。
  • MethodChannel:用于传递方法调用(method invocation)。
  • EventChannel: 用于数据流(event streams)的通信。

插件打包发布

运行 dry-run 命令以查看是否都准备OK了:

flutter packages pub publish --dry-run

运行发布命令:

flutter packages pub publish

flutter plugin通信原理

flutter的dv层 和android的jvm层借助底层的c/c++来通信

官方类型对比

Dart Android iOS
null null nil (NSNull when nested)
bool java.lang.Boolean NSNumber numberWithBool:
int java.lang.Integer NSNumber numberWithInt:
int, if 32 bits not enough java.lang.Long NSNumber numberWithLong:
int, if 64 bits not enough java.math.BigInteger FlutterStandardBigInteger
double java.lang.Double NSNumber numberWithDouble:
String j ava.lang.String NSString
Uint8List byte[] FlutterStandardTypedData typedDataWithBytes:
Int32List int[] FlutterStandardTypedData typedDataWithInt32:
Int64List long[] FlutterStandardTypedData typedDataWithInt64:
Float64List double[] FlutterStandardTypedData typedDataWithFloat64:
List java.util.ArrayList NSArray
Map java.util.HashMap NSDictionary

动画

  1. AnimationController用于控制动画,它包含动画的启动forward()、停止stop() 、反向播放 reverse()等方法
  2. Tween 类似android的补间动画,可以通过lerp决定动画的变化方式
  3. Curve 差值动画,要变化不线性用这个,比如弹性Curves.bounceIn
  4. AnimatedWidget类系统封装了调用setState()的细节,只刷新部分用这个省事
  5. Hero 一个页面切换另一个页面,共享元素的时候,可以得到好看的效果

知识点

flutter 看不了 gradle执行过程。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容