Flutter学习笔记(一)

81 阅读2分钟

Fluuter开发的好处:

1.减少人工成本,减少原生的开发成本 2.对于IOS开发来说,内部的增量机制可以快速提高开发效率。

语法笔记:

final和const的区别

final修饰变量,也叫做最终变量,只能被赋值一次,可以先声明在赋值,const修饰常量,声明的时候就必须赋值。

任何一个动态变量类型(var修饰并且声明的时候没有赋值),都可以被多次赋予不同类型的值。

Int和Double是可以互相转换的,.toInt,.toDouble

??= 和??的区别。??=表示如果变量为nil,给变量赋值,后面再赋值也不会改变这个变量,??表示如果左边有值返回左边,否则返回右边。

面向对象:

dart中不能重载,方法名不能重复,即使返回值类型不同或者参数不同,也不行。

在方法或者变量前加上下划线,表示这个变量或者方法是私有的,跨文件是无法访问的,但是在同一个文件是可以访问的。

混入:也就是多继承,关键字用extends搭配with加入多个类,注意,这些类不能有自己带参的构造方法,否则会报错。

.. 链式表达返回的是对象本身而不是返回值。

如果在强退AS以后重启卡主的情况

进入flutter/bin/cache 找到lock文件删除即可。

简单的一个居中显示的label例子

所有的主程序入口都是main函数,这里要讲一下,所有的dart文件都写在根目录的lib文件夹下,runApp方法用于显示界面,const关键字在flutter中尤为重要,他标识了当前的组件是不可变的,以后在增量更新的时候也不会更新,加快了效率,这里在界面上其实有两个组件,一个是Center,一个是Text,在代码中都会以黄色标识出来,Center 包装了一个盒子把所有的组件都居中显示。textDirection这个在文字显示的时候必须写,不然不显示,表示文字的阅读方向,不是文字的排列方向。

  runApp(
    const Center(
      child: Text(
        "123",
        textDirection: TextDirection.ltr,
      ),
    )
  );
}

自定义Widget

相比较于IOS中的UIView,在flutter中一个个的组件叫做Widget,而Widget又分为stateful(有状态)和stateless(无状态)两种,其实在flutter中所有的widget都是无状态的,只不过系统在做处理的时候,已经给你封装了一种特殊的widget,这种可以直接给状态赋属性等等,实现较为复杂一些,先操作一个简单的无状态widget。

截屏2022-12-05 11.15.08.png

build方法可以理解为重写绘制这个组件的方法,并且需要返回这个组件,才能在调用这个类的构造方法的时候拿到这个组件。