Flutter基础
Flutter无状态组件
1 | import 'package:flutter/material.dart'; |
Flutter有状态组件
1 | import 'package:flutter/material.dart'; |
Container组件
1 | import 'package:flutter/material.dart'; |
Center组件
center组件不能设置宽和高,会尽可能多的向父组件申请空间。
1 | import 'package:flutter/material.dart'; |
Align组件
精确控制子组件在其父组件中的对其位置。
alignment: 对其方式。子组件在父组件中的对其方式widthFactor: 宽度因子。Align的宽度将是其子组件的宽度乘以该因子。heightFactor: 高度因子。Align的高度将是其子组件的高度乘以该因子。
widthFactor和heightFactor在动态布局中很有用。
Center组件其实是Align组件的一个特例,Center继承自Align。
1 | import 'package:flutter/material.dart'; |
Padding组件
1 | import 'package:flutter/material.dart'; |
Column组件
父组件的大小会直接影响Column组件的大小。
Column组件不支持滚动!
1 | import 'package:flutter/material.dart'; |
Row组件
原理与Column组件相同。Row组件也不支持滚动。
1 | import 'package:flutter/material.dart'; |
弹性布局:Flex/Expanded/Flexible
用Expanded/Flexible作为Flex的子组件,通过flex属性来分配Flex组件空间。
1 | import 'package:flutter/material.dart'; |
Wrap 流式布局
流式布局组件,当子组件在主轴方向上排列不下时,它会在自动换行(或换列)。Wrap组件更像是"Flex组件加了还行特性". 但是Wrap组件的默认主轴居中方式和Flex组件不同。
1 | import 'package:flutter/material.dart'; |
Stack/Positioned 层叠布局
层叠布局组件允许将多个子组件按照Z轴方向(垂直于电脑屏幕)进行叠加排列。
Positioned组件只能作为Stack组件的直接子组件。
1 |
Text组件
1 | import 'package:flutter/material.dart'; |
Text.rich/TextSpan
1 | import 'package:flutter/material.dart'; |
Image组件
本地图片需要在pubspec.lock中配置路径
1 | flutter: |
另外,Android,HarmonyOS,IOS使用Image.network时需要配置网络权限。
1 | import 'package:flutter/material.dart'; |
TextField 文本输入
要使用TextField,前提必须是在有状态组件内。
1 | import 'package:flutter/material.dart'; |
滚动组件
SingleChildScrollView
让单个子组件可以滚动,所有内容一次性渲染。
ListView
线性列表,通过build可以实现懒加载,性能优异。
GridView
网格布局列表,支持懒加载,可以固定列数。
CustomScrollView
复杂布局方案,通过组合多个Sliver组件实现滚动。
PageView
整页滚动效果,支持横向和纵向。