这几天任务量不多,开始学习Flutter,搜索了一下wang网上的信息,大部分都是抄袭官网直接复制粘贴,所以决定自己写写关于Flutter的体会以及踩坑。
刚开始,我们来了解一下什么是Flutter,详见此文档:
https://flutterchina.club/flutter-for-android/#intent在flutter中等价于什么
配置环境这里就不赘述了,咋们直接从最开始的代码说起
首先看到代码,先找入口,在Flutter中main是唯一的入口(和C语言一样),然后再看看main函数中的内容:
很明显这里是走了runApp方法并且在这个方法中初始化了类MyApp,
然后看看类MyApp,这个类继承了
StatelessWidget
然后我们会发现下面也有一个类,继承了
StatefulWidget
而这两个类是什么?
答案是:在Flutter中,所有的界面都是控件,所有的控件的交互,属性,全都在控件的构造函数中便可以写好,与Android最大的不同在于,Flutter的控件不是一个固定的控件,这怎么说?在Android中我们都知道,控件一旦初始化之后,便不会再改变了,除非重新调用控件的构造方法或者重新绘制,那么StatelessWidget与StatefulWidget是什么呢?在Flutter中,Widget就是所有的控件,前者顾名思义为无状态控件,后者为有状态控件,举例来说:在一个界面中,你的用来展示标题的TextView数据是不会变的,所以可以将所有的展示标题的控件继承自StatelessWidget,而输入框或者选择框这种状态会改变的控件,就将其继承StatefulWidget,在StatefulWidget中的setState方法用于储存控件变化后的或者数据的改变后的执行。