flutter备忘录2

2020-05-11  本文已影响0人  不要和哥闹
1、Future使用
Future.delayed(Duration(seconds: 10), () {
      return Random().nextInt(10);
    }).then(print).timeout(Duration(seconds: 3)).then((str) {}).catchError((e) {
      print(e);
});
2、使用http解析json中文乱码解决方案
image.png
3、FutureBuilder使用
//FutureBuilder控件
new FutureBuilder<String>(
  future: _fetchPost(), // 用户定义的需要异步执行的代码,类型为Future<String>或者null的变量或函数
  builder: (BuildContext context, AsyncSnapshot<String> snapshot) {      //snapshot就是_calculation在时间轴上执行过程的状态快照
    switch (snapshot.connectionState) {
      case ConnectionState.none: return new Text('Press button to start');    //如果_calculation未执行则提示:请点击开始
      case ConnectionState.waiting: return new Text('Awaiting result...');  //如果_calculation正在执行则提示:加载中
      default:    //如果_calculation执行完毕
        if (snapshot.hasError)    //若_calculation执行出现异常
          return new Text('Error: ${snapshot.error}');
        else    //若_calculation执行正常完成
          return new Text('Result: ${snapshot.data}');
    }
  },
)
4、flutter在线json转model

https://javiercbk.github.io/json_to_dart/
https://caijinglong.github.io/json2dart/index.html

5、map转query字符串
String mapToQuery(Map<String, String> map, {Encoding encoding}) {
  var pairs = <List<String>>[];
  map.forEach((key, value) => pairs.add([
        Uri.encodeQueryComponent(key, encoding: encoding),
        Uri.encodeQueryComponent(value, encoding: encoding)
      ]));
  return pairs.map((pair) => '${pair[0]}=${pair[1]}').join('&');
}
6、flutter 所有icon

https://material.io/resources/icons/?icon=verified_user&style=baseline

7、VS Code快捷键

1、显示隐藏控制台
Shelf+Command+U
2、显示隐藏左边侧栏
Command+B

8、json数据解析命令

一次性生成
在项目根目录文件夹下运行

flutter packages pub run build_runner build

持续生成
在项目根目录文件夹下运行

flutter packages pub run build_runner watch
9、flutter pubspec.yaml文件

pubspec.yaml文件解释

10、flutter 所有类

flutter 所有类

11、flutter运行MacOS APP

https://flutter.dev/desktop

12、flutter正则提取

flutter正则提取
获取所有车站

String value =
        "var station_names ='@bjb|北京北|VAP|beijingbei|bjb|0@bjd|北京东|BOP|beijingdong|bjd|1'";
    Match match = RegExp("(?<=')(.*)(?=')").firstMatch(value);
    print(match.group(0));
    print(match.group(1));
    /*
    RegExp reg = new RegExp("(?<=')(.*)(?=')");
      Iterable<Match> matches = reg.allMatches(value);
      print(matches.length);
      for (Match m in matches) {
        print(m.groupCount);
        print(m.group(0));
      }
    */
13、一个非常好的控件介绍博客

老孟
老孟

14、控件展开折叠

1
2
3

15、Flutter “孔雀开屏”的动画效果

Flutter “孔雀开屏”的动画效果

16、flutter 清除缓存和编译
flutter clean
flutter build macos --release
上一篇下一篇

猜你喜欢

热点阅读