dart语言学习
内置类型:
数值型-Number
布尔型-Boolean
键值对-Map
字符串-String
列表-List
数值型的操作
运算符: +、 - 、* 、/ 、 ~/ 、 %
常用属性: isNaN、isEven、isOdd
常用方法:abs()、round()、floorl()、ceil()、toInt()、toDouble()
const 和 final所赋值不可变
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>[
...
]
【flutter 的简单学习总结】
最新推荐文章于 2021-11-30 11:52:43 发布