美文网首页
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