flutter 是由dart作為開發(fā)語言的一套移動(dòng)UI框架巍实,可以在Android Ios上快速搭建原生項(xiàng)目,fultter是不支持反射的
創(chuàng)建flutter的時(shí)候會生成一個(gè)默認(rèn)的界面哩牍,其中最開始的一部分都是一樣的
main()方法是固定的 MaterialAPP代表這是一個(gè)App,Scaffold代表使用Android 的Material風(fēng)格
StatefulWidget代碼比較多 as為我們提供了模板代碼使用stful可以快速創(chuàng)建
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: '測試',
theme: ThemeData(
primarySwatch: Colors.deepOrange,
),
home: MyHomePage(),
);
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("測試"),
),
body: Center(
child: Text("Holle棚潦,flutter"),
),
);
}
}
flutter里面一切皆Widget,舉個(gè)例子:
像這種Text就是一個(gè)集成StatelessWidget的Widget
flutter 有兩個(gè)特殊的Widget那就是StatelessWidget和StatefulWidget
這連個(gè)有什么區(qū)別呢膝昆?
其實(shí)StatelessWidget和StatefulWidget就是一個(gè)沒有狀態(tài)改變和一個(gè)有狀態(tài)改變的WIdget
如果細(xì)心的小伙伴會發(fā)現(xiàn)在StatefulWidget中會存在一下幾個(gè)方法
class Ac extends StatefulWidget {
@override
_AcState createState() => _AcState();
}
class _AcState extends State<Ac> {
@override
Widget build(BuildContext context) {
return Container();
}
@override
void initState() {
super.initState();
}
@override
void setState(fn) {
super.setState(fn);
}
@override
void dispose() {
super.dispose();
}
}
那這些方法代表什么意思呢丸边?
其實(shí)initState()表示初始化就像在Actvity會去初始化一些數(shù)據(jù)控件等叠必。
setState()代表界面狀態(tài)的刷新,當(dāng)調(diào)用這個(gè)方法的時(shí)候系統(tǒng)會重新去調(diào)用build()方法
來實(shí)現(xiàn)界面的刷新
@override
Widget build(BuildContext context) {
return Container();
}
dispose()代表銷毀 和Activity中的銷毀方法是一樣的效果妹窖,需要銷毀的對象或數(shù)據(jù)都在這里銷毀
flutter為我們提供了Android的Material和IOS的Cupertino兩套風(fēng)格纬朝,里面具體的Widget需要自己去寫了以后就會慢慢了解