Android开发者快速上手Flutter应用开发

工程目录概览

UI编写

main.dart分析

1. StatelessWidget和StatefullWidget

image-20210728145631191

  • StatelessWidget: 无状态不可更新Widget,其build方法只在组件创建执行一次, 就是说一旦这个Widget创建完成,相关的属性配置就不允许再变动, 适用于属性固定不变的控件, 节约性能。
  • StatefulWidget:有状态可更新Widget,State类中的build方法可以通过调用setState函数来重复执行, 类似于android自定义控件中的invalidate, 适用于属性需要动态改变的控件, 比如点击或者网络请求后控件内容更新

: 这种状态只针对当前控件有效, 不影响父控件或者子控件

2. 函数

  1. dart中函数形参, 我们可以使用大括号map形式的参数:

image-20210728154529647

也可以使用普通的形参表示:

image-20210728155125323

或者两者混搭:

image-20210728171730504

两者区别:

  • map形式: 传参时, 采用key:value的形式, 可设置默认值, 参数可传可不传

image-20210728154701753

  • 普通形式: 传参方式和java函数传参一样, 参数必传,否则报错

image-20210728155231818

此外, 我们还可以将函数当做参数进行传递:

image-20210728161913775

定义一个形参和返回值皆为函数的方法:

image-20210728165822497

一般这种写法太复杂, 为了简化写法, 我们可以给函数定义一个别名,类似于这种:

image-20210728170107196

这样看起来就清爽多了:

image-20210728170335274

  1. 内部匿名函数与外部函数

image-20210728170905542

当然 函数内部也可以声明函数:

image-20210728171034497

  1. 函数返回的简化写法:

image-20210728152316338

1
_MyHomePageState createState() => _MyHomePageState();

相当于

1
2
3
_MyHomePageState createState(){ 
return _MyHomePageState();
}
  1. UI的隐藏与显示

image-20210728163636872

Scaffold这个类为我们预制了很多控件, 类似于一个模板,我们可以对内置的控件进行排列组合, 需要显示的就定义, 不显示就不定义, 非常方便

本文为作者原创 转载时请注明出处 谢谢

img

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

0%