Flutter学习笔记与整合

原文链接:
http://www.cnblogs.com/soul-wonder/p/10219969.html

1.Dart

  面向对象语言,与java类比学习

  非常适合移动和Web应用程序

  1.dart官网

  2.Dark2 中文文档

  3.Dart语法学习

  4.极客学院Dart学习

  5.Flutter与Dart 入门

2.Flutter

  树形布局,一切皆组件

  1.flutter文档

  2.社区中文资源

  2.flutter中文文档(更新滞后)

  3.flutter学习入门:

    http://jspang.com/archives/

    https://juejin.im/user/59ed44cf6fb9a0451c398c45/posts

  4.flutter提升:

    https://segmentfault.com/u/yuwanhenshu/articles?sort=created

    flutter学习与爬坑:https://www.jianshu.com/nb/26101414

    https://github.com/CarGuo/GSYGithubAppFlutter

 3.爬坑

  1.listview嵌套listview

    子listview需要制定高度,使用 shrinkWrap: true 内容适配高度;

    滑动类型设置:  physics: new NeverScrollableScrollPhysics(), 禁止子模块列表滑动影响下拉刷新

    https://blog.csdn.net/hao_m582/article/details/84112278#ListView_1

  2.SimpleDialog

    需要指定宽和高

  3.验证码倒计时重发实现

    使用dart的async包下的 Timer.periodic 实现

    https://www.jianshu.com/p/f7a9b8c84d26

  4.微信分享插件

    先注册APPID

    https://pub.dartlang.org/packages/sy_flutter_wechat

  5.将图像保存到照片库

    https://pub.dartlang.org/packages/image_picker_saver

  6.屏幕溢出问题

    水平溢出:

      对于图片,动态的text数据,需要对container容器的宽度做计算约束,适配不同大小的手机

     constraints: BoxConstraints(maxWidth: _descWidth), 

      获取屏幕宽度

     MediaQuery.of(context).size.width 

    垂直溢出:

      对于不是滑动页面会出现底部溢出,使用 SingleChildScrollView 包裹,使其滑动,避免垂直溢出

  7.Dialogs, alerts

    flutter中弹窗是相当于一个页面,一个新的context

  8.页面传参

    方式一:Navigator

    flutter子父页面传参,相对前端而言很简单,因为dart是面相对象的语言,可以在导航中通过有参构造传参

    使用Navigator组件,然后使用路由MaterialPageRoute传递参数

    父》子,  子》父

   final result = await Navigator.push(
        context,
        MaterialPageRoute(
          builder: (context) => new OtherPage(param: param),
        ));
Navigator.pop(context,'$result');  //xxx就是返回的参数

    方式二:事件监听传值

    使用eventBus,  import package:event_bus/event_bus.dart; 

    1创建事件

class OnTapEvent {
  Map data;
  OnTapEvent (this.data);
}

    2发出事件 eventBus.fire(new OnTapEvent()); 

    3监听事件

eventBus.on()
        .listen((OnTapEvent data) {
      //TODO
    });

  9.移动平台中启动URL

    打开默认浏览器,或跳转其他页面

    https://pub.dartlang.org/packages/url_launcher#-readme-tab-

  10.顶部,底部TabBar控件

    https://juejin.im/post/5b685a2a5188251ac22b71c0

  11.LocalStorage

    持久化到手机

    https://pub.dartlang.org/packages/shared_preferences

  12.dio是一个强大的Dart Http请求库,支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载、超时等…

    https://github.com/flutterchina/dio/blob/flutter/README-ZH.md

  13.升级flutter SDK

    https://flutter.io/docs/development/tools/sdk/upgrading

转载于:https://www.cnblogs.com/soul-wonder/p/10219969.html