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.png3、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文件
10、flutter 所有类
11、flutter运行MacOS APP
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、控件展开折叠
15、Flutter “孔雀开屏”的动画效果
16、flutter 清除缓存和编译
flutter clean
flutter build macos --release