flutter目录结构


main.dart文件


  1. 调用flutter的步骤
  • 引入包:

import 'package:flutter/material.dart';

  • 使用flutter自己给我们提供的runApp方法

-在app方法里面,就可以调用flutter的组件,在flutter里面所有组件都是类(类都是大写字母开头的)
-new的作用:创建一个实例,在flutter中允许省略new关键词

  1. void main(){
  2. runApp(Center( //new runApp(new Center(
  3. child:Text(
  4. '你好Flutter',
  5. textDirection: TextDirection.ltr,
  6. )
  7. ));
  8. }
  1. 生成自定义组件(类),进行调用
  • StatelessWidget无状态组件,前期就用这个,这个组件是不可以变化的
  • StatelessWidget是一个抽象类,它里面还有一个build抽象方法
  • 对于普通类继承,并非一定要重写父类方法;抽象类继承,如果子类也是一个抽象类,并不要求一定重写父类方法。如果子类不是抽象类,则要求子类一定要实现父类中的抽象方法。
  • flutter里面所有东西都是组件
  • flutter里面所有东西都是double,40写成40.0,默认px


    进行层层封装 ```dart import ‘package:flutter/material.dart’; import ‘package:english_words/english_words.dart’;

void main(){ //new可以省略 runApp(new MyApp()); } //等效写法为: //void main()=>runApp(MyApp());

//自定义组件 class MyApp extends StatelessWidget{ @override Widget build(BuildContext context) { return MaterialApp( home:Scaffold( appBar: AppBar( title:Text(‘Flutter Demo’) ), body:HomeContent(), ), theme: ThemeData( primarySwatch: Colors.yellow ) ); } }

class HomeContent extends StatelessWidget{ @override Widget build(BuildContext context){ return Center( child:Text( ‘你好Flutter hhh’, textDirection: TextDirection.ltr, style: TextStyle( fontSize: 40.0, //color: Colors.yellow color: Color.fromRGBO(244, 233, 2143, 0.5), ), ) ); } }

  1. 3. e
  2. 3. e
  3. 3. e
  4. 3. e
  5. 3. e
  6. <a name="zNKag"></a>
  7. ## dynamic、var、object的区别
  8. ---
  9. <a name="KbdxS"></a>
  10. ### dynamic
  11. - eg`dynamic d = "CSDN";`
  12. - 在**运行时**由系统根据该变量的 赋值 自动 推断该变量的数据类型
  13. - 动态数据类型,在运行时可以改变数据类型:
  14. eg:`d = 666;`
  15. - 在编译时会使 Dart 语言的静态语法检查失效(如调用一个不属于该字符串对象的方法,不会报错),会在运行时报错
  16. <a name="RR9eZ"></a>
  17. ### var
  18. - eg:`var v = "CSDN";`
  19. - 在**运行时**由系统根据该变量的 赋值 自动 推断该变量的数据类型
  20. - var的数据类型在确定后(区别dynamic),不可更改
  21. <a name="QRqkd"></a>
  22. ### Object
  23. - eg:`Object o1 = 1; Object o2 = "CSDN";`
  24. - Object是所有对象的基类,可以为其赋值子类的类型值,如上一行所示
  25. - Object的数据类型是确定的(区别dynamic),不可更改
  26. - Object中定义的方法如下
  27. ```dart
  28. class Object {
  29. const Object();
  30. external bool operator ==(other);
  31. external int get hashCode;
  32. external String toString();
  33. @pragma("vm:entry-point")
  34. external dynamic noSuchMethod(Invocation invocation);
  35. external Type get runtimeType;
  36. }