Stepper 是 flutter 提供的步骤选择器
1. Stepper
1.1 Stepper 介绍
Stepper 定义
Stepper 属性
Stepper 属性 |
介绍 |
steps |
@required List<Step> |
physics |
滑动的物理效果 |
type |
Stepper 类型,分为横向与纵向两种,默认为 StepperType.vertical |
currentStep |
当前 step,默认为 0 |
onStepTapped |
step 点击回调函数 |
onStepContinue |
Next 按钮点击回调函数 |
onStepCancel |
Cancel 按钮点击回调函数 |
controlsBuilder |
内容下方按钮构建函数 |
elevation |
阴影 仅在Stepper的type为横向时有效 |
margin |
外边距 仅在Stepper的type为垂直时有效 |
1.2 Step 介绍
Step 定义
Step 属性
Step 属性 |
介绍 |
title |
@required 标题控件 |
subtitle |
副标题控件 |
content |
@required 内容控件 |
state |
当前 step 的状态,StepState 会改变每一个 step 的图标,默认为 StepState.indexed |
isActive |
是否激活状态,默认为 false,isActive == true 时会变成蓝色 |
2. Stepper 示例
2.1 垂直方向Stepper
2.2 水平方向Stepper
注意:横向的时候如果内容过多会溢出,这个是跟纵向有区别的,这时候要么减少内容,要么使用滑动组件嵌套,但还还需要嵌套一个已知宽度的父空间
2.3 controlsBuilder
3. 技术小结
- 第一步,我们既然要做一个 Stepper,我们要准备一套数据模型,并且模型包含了状态,标题,内容,下标,等各个元素,然后将这些数据构造出来当做数据源。
- 第二步,我们创建 Stepper,并对一些属性进行设置。
- 第三步,我们创建 steps,这里很重要,要根据我们第一步中的数据源,将每一个 model 构造成对应的 Step 控件。
- 第四步,我们在创建 steps 时,对 model 的状态进行管理,设置编辑中,已完成,未完成等不同状态。
- 第五步,我们对 Stepper 的交互事件进行处理,点击时将 currentStep 设置到对应 index,cancel 时我们执行 currentStep -1 操作,Next 时我们执行 currentStep +1 操作,此处注意防止越界。
作者:maskerII
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。