Flutter基础组件,直接开发项目

最近学习了一段时间flutter开发,学完这些组件可以直接开发新项目。

记住:在flutter中,万物皆Widget,在Dart语言中万物皆Object。

先来看下效果图:

flutter_demo.gif

1、基础组件,列出几个常见使用的组件

  1. Container 需要注意 container中的color不能和组件中的decoration的color同时设置值,编译报错
  2. TextFormField 输入框的使用
  3. Image 的4种加载图片的方法
  4. RichText 的使用
  5. Button,RaisedButton,FlatButton
  6. ListView: ListTile, List.generate, Listbuilder,Listview.PullToRefresh的功能
  7. GridView.builder
  8. GestureDetector 手势
  9. PageView、PageController 滑动view的功能
  10. Animation 动画

2、如何使用第三方库

  1. 在项目根目录下pubspec.yaml的配置文件中的dependencies下添加,需要依赖的库,
    例如:

     dependencies:
         flutter:
             sdk: flutter
    
         # The following adds the Cupertino Icons font to your application.
         # Use with the CupertinoIcons class for iOS style icons.
         cupertino_icons: ^0.1.2
         # 网络库
         url_launcher: ^5.0.2
         # 图片加载库
         image_picker: ^0.5.0+9
         fluttertoast: ^3.0.3
    

找库的地址:
https://pub.dartlang.org/

例如:


pub_dartlang.png

然后在pubspec.yaml配置文件的的右上角点击“Packages get” 拉取下包,出现以下情况,即可完成拉取包。


flutter_packages_get.png

3、如何使用GlobalKey,在表单中存储当前状态值,采用Map的key-value的形式缓存数据

abstract class GlobalKey<T extends State<StatefulWidget>> extends Key

也是一个泛型类型,但是T必须要继承自State<StatefulWidget>,可以说这个GlobalKey专门用于组件了。
再看:

static final Map<GlobalKey, Element> _registry = <GlobalKey, Element>{};

GlobalKey里含有一个Map,key和value分别为自身和Element。
代码分析:


globalkey.png

4、加载网页

采用第三方网络库:url_launcher

例如:

TextSpan(
  text: 'Github',
  style: TextStyle(color: Colors.blue),
  recognizer: TapGestureRecognizer()
    ..onTap = () async {
      String url = 'https://github.com/jiangqingbo/flutter_demo';
      if (await canLaunch(url)) {
        await launch(url);
      } else {
        throw 'error: $url';
      }
    }),

5、animation动画

  1. 四种状态:

    • dismissed:动画初始状态
    • forward:动画从头到尾播放状态
    • reverse:动画从尾到头播放状态
    • completed:动画完成状态
  2. Animation类是Flutter动画中核心的抽象类,它包含动画的当前值和状态两个属性。定义了动画的一系列监听回调。

    • 值监听:addListener、removeListener
    • 状态监听:addStatusListener、removeStatusListener
  3. AnimationController动画的控制。

    • AnimationController是一个特殊的Animation对象,在屏幕刷新的每一帧,就会生成一个新的值,默认情况下,AnimationController在给定的时间段内会线性的生成从0.0到1.0的数字
    • 属于Animation<double>类型
    • 具有控制动画的方法,例如,.forward()方法可以启动动画
    • 当创建一个AnimationController时,需要传递一个vsync参数,存在vsync时会防止屏幕外动画(动画的UI不在当前屏幕时)消耗不必要的资源。
    • 通过将SingleTickerProviderStateMixin添加到类定义中,可以将stateful对象作为vsync的值。如果要使用自定义的State对象作为vsync时,请包含TickerProviderStateMixin。
    • 特别注意:在不使用时需要调用dispose方法,否则会造成资源泄露
  4. Curve

    • 定义了时间和数值的抽象类。Flutter封装定义了一系列的插值器,如linear、decelerate、ease、bounce、cubic等。当然Flutter提供的不满足需求的话,也可以自定义插值器。
  5. Tween 线性估值器。Flutter还封装定义了不同类型的估值器:

    • ReverseTween
    • ColorTween
    • SizeTween
    • RectTween
    • IntTween
    • StepTween
    • ConstantTween

6、由于代码太多,就给出GitHub完整代码,大家一起学习,希望可以帮助初学者

完整代码: Flutter_demo

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

推荐阅读更多精彩内容