*关于我是如何去学习flutter的方法
首先了解最基础的一点知识,比如flutter这些代码所表现的界面,它的顶级组件(Widget)是什么,怎么写。
一:
目前我已经学习的理解:
Flutter 顶级类,可以继承两个类:StatefulWidget和StatelessWidget。
比如:
StatelessWidget:
class xxx extends StatelessWidget
{
@override //此为重载含义
Widget Build(BuildContext context)
{
return Scaffold(
body:Container(
//父组件Scaffold的子组件Container
)
);//return后面的函数需要加' ; '
}
}
StatefulWidget:
class xxx extends StatefulWidget
{
@override
_xxx createState() => _xxx();// =>即为{} 此处_xxx为本体
}
class _xxx extends State<xxx>
{
@override
Widget Build(BuildContext context)
{
return Scaffold(
body:Container(
//内容再自行补充
)
);
}
}
二:
StatefulWidget和StatelessWidget的区别:
StatefulWidget为一个动态的组件,我们可以通过它来描绘一个动态的Widget,在这里,我们可以让用户根据自己的需求,通过输入等操作来对Widget进行更改,同时可以通过数据的交互来进行形态变化。
StatelessWidget为一个静态的组件,不需要状态改变,内部没有需要管理的状态,不会改变来做到一些渲染。
三:
StatefulWidget拥有一些特殊的函数,可以达到更改渲染、处理数据等的效果:
(StatefulWidget的启动顺序:构造函数 > initState > didChangeDependencies > Widget build)
1.initState
void initState()
{
super.initState();//理解为重载函数
//在这里加入的函数,会在初始化界面的时候调用
//个人一般会在这里加入网络请求,数据处理、存储、调用,持久化存储等相关函数
}
2.didChangeDependencies
void didChangeDependencies()
{
super.didChangeDependencies();//重载
//此函数会在initState函数之后调用,同样可以调用函数
//
}
3.setState
setState((){
//在此处添加的函数,会在更新界面的时候调用
//一般来说setState是在一些可以更新界面的组件中添加,例如:RaisedButton 中的
onpressed中调用,通过添加点击事件,更改界面
});
4.dispose
dispose()
{
//在此处添加的函数,在界面销毁时调用
}
其余的就不多做解释了,直接上表格吧:
名称 | 状态 |
---|---|
initState | 初始化界面 |
didChangeDependencies | State依赖的对象发生变化调用(initState之后调用) |
setState | 更改或更新界面时调用 |
didUpdateWidget | 组件状态改变时调用,可能调用多次 |
build | 构建Widget时调用 |
deactivate | 移除渲染树时调用(dispose之前调用) |
dispose | 销毁界面时调用 |