flutter基础

flutter 是由dart作为开发语言的一套移动UI框架,可以在Android Ios上快速搭建原生项目,fultter是不支持反射的
创建flutter的时候会生成一个默认的界面,其中最开始的一部分都是一样的
main()方法是固定的 MaterialAPP代表这是一个App,Scaffold代表使用Android 的Material风格
StatefulWidget代码比较多 as为我们提供了模板代码使用stful可以快速创建

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,举个例子:

image.png

像这种Text就是一个集成StatelessWidget的Widget
flutter 有两个特殊的Widget那就是StatelessWidgetStatefulWidget
这连个有什么区别呢?
其实StatelessWidgetStatefulWidget就是一个没有状态改变和一个有状态改变的WIdget
如果细心的小伙伴会发现在StatefulWidget中会存在一下几个方法

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();
  }
}

那这些方法代表什么意思呢?
其实initState()表示初始化就像在Actvity会去初始化一些数据控件等。
setState()代表界面状态的刷新,当调用这个方法的时候系统会重新去调用build()方法
来实现界面的刷新

  @override
  Widget build(BuildContext context) {
    return Container();
  }

dispose()代表销毁 和Activity中的销毁方法是一样的效果,需要销毁的对象或数据都在这里销毁
flutter为我们提供了Android的Material和IOS的Cupertino两套风格,里面具体的Widget需要自己去写了以后就会慢慢了解

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。