使用vscode建立flutter工程

遇到的问题

  1. 报dart:ui的问题
    原因是使用的run code直接运行,是从dart的命令行里运行的。需要手动输入flutter run来运行flutter工程。d
  2. 报gradle的问题,导致项目无法构建
    原因是工程处于中文目录下,移到全英目录下就没有问题了。
  3. 报failed to setup Skia的问题
    在这里插入图片描述
  4. 镜像问题
buildscript {
    repositories {
        // google()
        // jcenter()
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
    }

vscode开发技巧

1. 快速建立无状态/有状态组件的代码模板
当代码框里输入 stl 的时候,可以自动弹出创建无状态控件的模板选项,而输入 stf 的时,就会弹出创建有状态 Widget 的模板选项。

vscode debug控制台功能选择

1. 按p
显示各个widget的线框图,再按一次p返回到正常状态。

调试

1. 使用vivo y66 真机调试
在手机通话中输入 *#*#7777#*#* 然后选中 开发者选项 USB调试
在vscode命令行中在项目根目录下输入 flutter run

Dart语法

1. 构造函数

构造函数语法糖,为了方便实例变量初始化。注意使用条件。

Point(num x, num y) {
    // There's a better way to do this, stay tuned.
    this.x = x;
    this.y = y;
  }
 //可以写成
 Point(this.x, this.y);

子类构造之前会先初始化参数列表(虽然我不知道什么是参数列表,我好像知道了,这样的话构造函数的参数就可以是一个表达式或一个函数调用,保证构造函数执行之前参数已经准备好),然后执行父类的无名无参的构造函数,如果父类没有无名无参的构造函数,那么就需要手工调用父类的其他构造函数。(在子类构造函数传参()后面加:super.constructorName(xxx),然后再写子类构造函数的函数体,最后执行子类的构造函数。
注意: 子类调用超类构造函数的参数无法访问 this,也就是不能传实例的动态变量。

class Employee extends Person {
  // Person does not have a default constructor;
  // you must call super.fromJson(data).
  Employee.fromJson(Map data) : super.fromJson(data) {
    print('in Employee');
  }
}

还有一种情况叫做构造函数重定向。重定向到该类的另一个构造函数。重定向构造函数没有函数体,使用冒号:分隔。

class Point {
    num x;
    num y;
    // 主构造函数
    Point(this.x, this.y) {
      print("Point($x, $y)");
    }
    // 重定向构造函数,指向主构造函数,函数体为空
    // 貌似swift中的便利构造函数,但略有不同
    Point.alongXAxis(num x) : this(x, 0);
  }

flutter注意事项

1. Text的使用

正确代码:

void main() => runApp(Center(
  child: Text(
    'Hello world',
    textDirection: TextDirection.ltr,
    style: TextStyle(
      fontSize: 40.0,
    ),
  ),
));

错误代码:

void main() => runApp(Center(
  child: Text(
    'Hello world',
    style: TextStyle(
      fontSize: 40.0,
    ),
  ),
));

错误依旧:

void main() => runApp(Center(
  child: Text(
    'Hello world',
    textAlign: TextAlign.center,
    style: TextStyle(
      fontSize: 40.0,
    ),
  ),
));

错误原因:不知道。。。字体设置个其他属性之后才能用style???

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

匿名匿名匿名11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值