flutter目录结构
main.dart文件
- 调用flutter的步骤
- 引入包:
import 'package:flutter/material.dart';
- 使用flutter自己给我们提供的runApp方法
-在app方法里面,就可以调用flutter的组件,在flutter里面所有组件都是类(类都是大写字母开头的)
-new的作用:创建一个实例,在flutter中允许省略new关键词
void main(){
runApp(Center( //new runApp(new Center(
child:Text(
'你好Flutter',
textDirection: TextDirection.ltr,
)
));
}
- 生成自定义组件(类),进行调用
- 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), ), ) ); } }
3. e
3. e
3. e
3. e
3. e
<a name="zNKag"></a>
## dynamic、var、object的区别
---
<a name="KbdxS"></a>
### dynamic
- eg:`dynamic d = "CSDN";`
- 在**运行时**由系统根据该变量的 赋值 自动 推断该变量的数据类型
- 动态数据类型,在运行时可以改变数据类型:
eg:`d = 666;`
- 在编译时会使 Dart 语言的静态语法检查失效(如调用一个不属于该字符串对象的方法,不会报错),会在运行时报错
<a name="RR9eZ"></a>
### var
- eg:`var v = "CSDN";`
- 在**运行时**由系统根据该变量的 赋值 自动 推断该变量的数据类型
- var的数据类型在确定后(区别dynamic),不可更改
<a name="QRqkd"></a>
### Object
- eg:`Object o1 = 1; Object o2 = "CSDN";`
- Object是所有对象的基类,可以为其赋值子类的类型值,如上一行所示
- Object的数据类型是确定的(区别dynamic),不可更改
- Object中定义的方法如下
```dart
class Object {
const Object();
external bool operator ==(other);
external int get hashCode;
external String toString();
@pragma("vm:entry-point")
external dynamic noSuchMethod(Invocation invocation);
external Type get runtimeType;
}