哥哥带你一步一步熟悉Flutter框架搭建[持续更新]

1,日志打印工具   logger 

https://pub.dev/packages/logger

2.1,网络框架  dio

https://pub.dev/packages/dio

2.2,网络框架 http

https://pub.dev/packages/http

2.3,Flutter自带网络框架HttpClient,虽然也支持忽略证书,但是代码比较啰嗦,不推荐

dio目前我没有找到合适的支持忽略证书的方式,所以给出另一个第三方库的http的完美封装,地址如下:https://www.jianshu.com/p/f0806375668d

3,常用工具类集合

https://github.com/Sky24n/flustars

4,Toast工具类

https://github.com/PonnamKarthik/FlutterToast

5,设置隐藏状态栏

void main() {

runApp(new MyApp());

  if(Platform.isAndroid){

// 以下两行 设置android状态栏为透明的沉浸。写在组件渲染之后,是为了在渲染后进行set赋值,覆盖状态栏,写在渲染之前MaterialApp组件会覆盖掉这个值。

    SystemUiOverlayStyle systemUiOverlayStyle =

SystemUiOverlayStyle(statusBarColor: Colors.transparent);

    SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);

  }

}

6,路由跳转

Navigator.push(context, MaterialPageRoute(builder:(context) =>NewScreen()));

7,设置倒计时

Timer timer = new Timer(const Duration(milliseconds:1500),(){

Navigator.of(context).push(new MaterialPageRoute(

builder: (BuildContext context) =>new Home()

));

});

8,mainaxisalignment和crossaxisalignment

垂直布局时:y轴为主轴,x轴为副轴!

水平不就是:x轴为主轴,y轴为副轴!

9,EdgeInsets的基类,允许文本方向感知分辨率。

此类型的属性或参数接受使用新EdgeInsets.fromLTRB及其变体或新EdgeInsetsDirectional.fromSTEB及其变体创建的类。

要将不确定类型的EdgeInsetsGeometry对象转换为EdgeInsets对象,请调用resolve方法。

10,mixin是什么

对于熟悉java来说的,这个概念比较新。从个人理解来看,可以把它想象为Kotlin中的接口(和Java的区别是可以带非抽象的属性和方法),而多个mixin可以相互覆盖以实现组合,提供了非常大的灵活性,也可以达到类似多重继承的效果。

mixin本身可以是抽象的,可以定义各种方法属性,也可以是抽象的,等后续类去实现 。如果mixin存在冲突的部分,后面会覆盖前面的,没有冲突的则会保留,所以可以存在后面的mixin修改了前面的mixin的一部分逻辑的情况,不需要直接继承即可实现覆盖,避免了更复杂的继承关系。

例如,通过 SingleTickerProviderStateMixin  实现 Tab 的动画切换效果 (ps 如果有需要多个嵌套动画效果,你可能需要TickerProviderStateMixin)。

11,Subject和BehaviorSubject

1.Subject类,Subject可以实现一个消息向多个订阅者推送消息                                  var subject = new Rx.Subject();   //实例化一个Subject对象                      subject.next(1);                  //向接受者发送一个消息流

subject.subscribe({        next: (value) => console.log('observerA: ' + value)  //接受者A订阅消息,获取消息流中的数据});

subject.subscribe({        next: (value) => console.log('observerB: ' + value)  //接受者B订阅消息,获取消息流中的数据});

这样两路接受者都能拿到发送的数据流:observerA:1observerB:1

2.BehaviorSubject是Subject的一个衍生类,它将数据流中的最新值推送给接受者

var subject = new Rx.BehaviorSubject(0); //声明一个BehaviorSubject对象subject.next(1);           //发送一个数据流                                                      subject.next(2);           //再发送一个数据流

subject.subscribe({        next: (v) => console.log('observerA: ' + v)  //接受者A订阅消息});

subject.subscribe({        next: (v) => console.log('observerB: ' + v)  //接受者B订阅消息});

subject.next(3);    //再发送一个数据流

这样,每次接受者只会接受最新最送的那个消息:

observerA:2

observerB:2

observerA:3

observerB:3

12,Sink

使用Sink给Stream添加数据

13,Sream

对于刚接触Flutter的同学来说,Stream(流)是一个相对比较抽象,也相对比较难以理解的东西。准确的来说Stream并不是Flutter的特性,而是Dart语言自身所带库。Stream和Future都位于dart:async核心库,是Dart中异步操作的两大高手。所以不仅仅可以用于Flutter,而是可以用于任何Dart语言上的实现。 在我们刚开始学习Flutter的时候基本都是使用 StatefulWidget和setState((){})来刷新界面的数据,当我熟练使用流之后就可以基本完全使用StatelessWidget告别 StatefulWidget同样达到数据刷新效果。

14,InkWell

Flutter有专门设计MaterialDesign风格的按钮,但是更多时候我们希望自定义按钮样式或者为某个组件添加点击事件,所以在处理点击事件时,最常见的做法是,用InkWell或者GestureDetector将某个组件包起来。 GestureDetector用法与InkWell类似,不过GestureDetector有更多处理手势的方法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,284评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,115评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,614评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,671评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,699评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,562评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,309评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,223评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,668评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,859评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,981评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,705评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,310评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,904评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,023评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,146评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,933评论 2 355

推荐阅读更多精彩内容