美文网首页
Flutter—SomeTips02

Flutter—SomeTips02

作者: 土豆骑士 | 来源:发表于2020-06-13 09:45 被阅读0次

1: .. 语法

datas..addAll(friend_datas)..addAll(friend_datas); //链式编程 多次添加数据

2:sort 排序

//排序:
//numbers.sort((a, b) => [a.length.compareTo(b.length));]

datas.sort((Friends a,Friends b) => a.indexLetter.compareTo(b.indexLetter));

3:获取控件的坐标值

//拿到box

RenderBox box = context.findRenderObject();

//拿到y值  获取空间的坐标 y值
double y = box.globalToLocal(globalPosition).dy;

4: clamp 函数,取值在 一个范围

// Returns this [num] clamped to be in the range [lowerLimit]-[upperLimit].

var a = 100;//一般 值 不确定

a.clamp(0, 1000);// 取值在(0,1000)

5:ListView 绑定到ScrollController上,

return ListView.builder(
      controller: _scrollController,
)

//手动滑动到某位置上
_scrollController.animateTo(offset, duration: null, curve: null)

6:导入package:

链接:http: https://pub.dev/packages/http

在pubspec.yaml中 添加 http: 0.12.1 => 点击 pub get

or 控制台命令 $flutter packages get

7:Map 与 Json 转换,字典模型的转换

使用 http 库,需要进行encode decode 。

import 'dart:convert';

void testJsonConvertMap() {

  final chat = {

    'name':'张三',

    'message':'你吃了吗?'

  };

  //Map 字典转 json  ==> encode

  var chatJson = json.encode(chat);

  print(chatJson);

  //Map 字典转 json   ==> decode

  var newMap = json.decode(chatJson);

  print(newMap);

  print(chat is Map);// is 类型判断 Map

}

8:Dart异步编程

Dart 是单线程语言,这样没有 资源抢掠夺,锁的问题。

但有能实现多线程的方案 Isolate compute

9:await 修饰 异步函数操作

void getData() async {

  print('开始data=$_data');

  //1.后面的操作必须是异步才能用await
  //2.当前函数必须是异步函数
  Future future = await Future(() {// await 表示后边的操作,都变为 同步执行了

    //耗时操作
    for (int i = 0; i < 1000000000; i++) {}

//    throw Exception('网络异常');

    return '哈哈';
  });

10: Future链式调用,处理网络请求

//处理错误

future.then((value) {

  print('then  来了!!');

  print(value);

}).catchError((e) {

  print('捕获到了:' + e.toString());

}).whenComplete(() {

  print('完成了!');

});

相关文章

网友评论

      本文标题:Flutter—SomeTips02

      本文链接:https://www.haomeiwen.com/subject/etkatktx.html