【flutter 的简单学习总结】


 dart语言学习
	内置类型:

	数值型-Number

	布尔型-Boolean

	键值对-Map

	字符串-String

	列表-List

	数值型的操作

运算符: +-*/ 、 ~/%

常用属性: isNaN、isEven、isOdd

常用方法:abs()round()floorl()ceil()toInt()、toDouble()


constfinal所赋值不可变

List(数组)创建

创建List:var list[1,2,3];

创建不可变的List:var list = const [1,2,3];

构造创建:var list=new  List();

常用操作

[],length



Map

Map创建

创建Map;var language = {'first''Dart','second':'java'};

创建不可变Map:var language = const{'first':'Dart','second':'java'};

构造创建:var language = new Map();

常用操作


dart中方法也是对象

=> expr 是 {return expr}的缩写   ,只适用于一个表达式

方法都有返回值,如果没有指定就会返回null

方法的返回类型和参数类型可以省略


匿名方法

(参数1,参数2,...{

        方法体...

        return返回值

}

匿名方法特性


void main(){
        var func=( str ){
            print("hello----$str");
            };    func(30);
    
    var list2={"h","e","l","l","o"};


    闭包是为了 在某个方法外部获取该方法内的局部变量的值 比如这里面的 count,且 多次调用该闭包 闭包是会对count的值进行保存的 所以打印的数值是递增的。

闭包函数的返回值一定是一个函数

闭包的作用就是 使得外部能获取到某方法里的局部变量的值



?表示 如果person对象为空 则不进行 name属性的访问了 防止报错

as 表示 类型的强制转换 对比oc


?.非空判断,与kotlin使用规则一致,as 类型转换,与kotlin规则一致,真不愧是一家公司推得,类型判断 is  is!一致, .. 级联操作,与建造者模式,builder模式使用规则一致。



call 方法也可以是有参数的 person(‘tets’,30)



dart接口比较特殊,类既可以被继承,也可以被实现,但是类被当做接口使用并不美观易用,建议实现只有抽象方法的抽象类(当做接口),继承已经实现的实用类,以接近java的方式易于理解和使用。

dart 中的每一个类 都可以被当作接口使用

使用 implements

Mixins 多继承 必须用extends. 主父类..with...二级父类列表

class d extends a with b,c{}

继承存在顺序关系


重写 []操作符:对象本身不支持 【】去取出属性的,但是使用操作符可以实现

想要实现对象直接进行大小的比较:只要在该类中进行 operator 复写就行了



flutter 框架学习

Flutter是谷歌的移动UI框架,可以快速在IOS和Android上构建高质量的原生用户界面。Flutter可以与现有的代码一起工作,并且它是免费、开源的。

特点:

1、跨平台:Linux、Android、IOS、Fuchsia

2、原生用户界面:它是原生的,让我们体验更好、性能更好

3、开源免费:完全开源,可以进行商用

参照本课程,自己理解写的博客文档,大家可以看一下

https://www.jianshu.com/p/afee6508f9cc
《Flutter从入门到进阶实战携程网App》课程地址:https://coding.imooc.com/class/321.html


Flutter生态环境介绍

第三方组件:https://github.com/Solido/awesome-flutter

120fps:因为使用GPU渲染

vscode 

创建flutter项目   flutter create  demo
运行项目  flutter run

更新flutter  ----flutter upgrade

1、StatelessWidget与StatefulWidget的区别:后者用于动态的组件比如进度条,前者用于静态的,后者比前者使用的偏多

2、Flutter upgrate命令更新Fluter SDK

3、vscode常用控制虚拟机的快捷键:R P O Q

TextWidget文本组件讲解
TextWidget 	----textAlign(对齐属性)
maxLines   ----1 TextOverFlow(行数)
style ---- TextStyle(样式)
	fontSize、color 
ContainerWidget容器组件
body:Center(
	child:Container(
		child: new Text(
			"hello flutter",
			style:TextStyle(fontSize:40.0),
			)
		alignment:Alignment.center,
		width:500.0,
		height:400.0,
		color:Colors.lightBlue,
		padding:EdgeInsets.fromLTRB(左上右下)
		margin:EdgeInsets.all(10.0),
		 decoration:new BoxDecoration(
		 	.......
		 	)
		)
	)
Padding 内部边距

Margin 外部边距

container修饰器decoration

LinearGradient实现渐变色

container内边距EdgeInsets.fromLTRB(左上右下)

container内边距EdgeInsets.all(10.0)

ImageWidget 图片组件讲解
ImageWidget属性:

scale    缩放(值越大,图片越小)

fit        显示属性(拉伸、填充、宽|高对齐)

colorBlendMode    叠加模式

repeat    重复


图片加载模式:Image.asset 资源加载

                    Image.network 网络加载

                    Image.file 本地加载

                    Image.memory 内存加载

ListViewWidget列表组件

横向列表和自定义组件

简书   https://www.jianshu.com/p/afee6508f9cc

横向列表顾名思义就是,可以通过水平方向进行一个列表的滑动,左右滑动列表Item,即可浏览ListView的数据了。



scrollDirection属性的使用

- Axis.vertical:垂直方向

- Axis.horizontal 水平方向



非常简单,我们直接修改属性值就可以完成不同方向的ListView



可以看到,我们在new的时候,传递了一个List对象给构造器,通过List的generate方法快速生成一个1000大小的列表。

然后在类的构造器中去接收到这个List参数,然后给类的ListView组件使用,达到动态数据,
list的数据源是由外部接收的,这样我们的ListView数据将会非常灵活。

动态列表

ListView.builder{

    itemCount: items.length,//items是传来的变量

    itemBuilder:(context,index){

        return new ListTile(//定义列表item

            title:new Text......


GridView.count(

    padding :

    crossAxisSpacing:

    children:<Widget>[

    ...

    ]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值