Flutter Stepper 步骤

步骤组件是用来约束用户操作的,第一步完成后才能进入下一步。所有步骤都完成,才可进行提交操作。 

参数详解

属性说明
steps步骤内容集合

physics

步骤跳转动画
typeStepperType.vertical
currentStep步骤位置
onStepTapped状态改变时触发
onStepContinue点击 continue 时触发
onStepCancel点击 cancel 时触发
controlsBuilder自定义控件

 

以下是每一步(Step)的属性
title主标题
subtitle副标题
content内容
stateStepState.indexed 此为默认状态,步骤数
StepState.eidting 编辑状态
StepState.complete 完成状态
StepState.disabled 不可用状态
StepState.error 错误状态
isActive导航是否高亮

代码示例

Stepper(
  //当前步骤下标
  currentStep:this.currentStepIndex,
  //上一步
  onStepCancel: (){
    setState(() {
      currentStepIndex--; 
    });
  },
  //下一步
  onStepContinue: (){
    setState(() {
      currentStepIndex++; 
    });
  },
  //自定义按钮
  controlsBuilder:(BuildContext context, {VoidCallback onStepContinue, VoidCallback onStepCancel}){
    return Row(
      children: <Widget>[
        FlatButton(
          onPressed: onStepContinue,
          child: const Text('下一步'),
        ),
        FlatButton(
          onPressed: onStepCancel,
          child: const Text('上一步'),
        ),
      ],
    );
  },
  // 步骤集合
  steps: <Step>[
    Step(
      title: Text('我是标题1'),
      content: Text('我是内容1我是内容1我是内容1我是内容1我是内容1我是内容1我是内容1'),
      subtitle:Text('我是副标题1111'),
      isActive: true,
      
    ),
    Step(
      title: Text('我是标题1'),
      content: Text('我是内容1我是内容1我是内容1我是内容1我是内容1我是内容1我是内容1'),
    ),
    Step(
      title: Text('我是标题1'),
      content: Text('我是内容1我是内容1我是内容1我是内容1我是内容1我是内容1我是内容1'),
    ),
    Step(
      title: Text('我是标题1'),
      content: Text('我是内容1我是内容1我是内容1我是内容1我是内容1我是内容1我是内容1'),
    ),
  ],

),

示例代码 为的更加清楚组件使用,并未添加校验,不停点击下一步或上一步会报错 steps.length': is not true。越界了!!

效果图

完整代码

查看完整代码

Flutter中,Stepper控件通常用于创建一个步骤条,让用户可以按照一定步骤进行任务。它默认情况下标题是在图标的上方的,但如果你想要将标题移动到图标下方,可以通过自定义Stepper的每个步骤的布局来实现。 以下是一个基本的步骤,介绍如何将标题放置在图标下方: 1. 使用`Stepper`控件,然后在其`steps`属性中定义你每个步骤的内容。 2. 对于`Step`控件,你可以使用`title`属性来设置标题,`content`属性来设置内容。 3. 为了将标题移动到图标下方,你可以创建一个`Row`布局,并在这个布局中将`title`放置在`Icon`的下方。 下面是一个简单的代码示例: ```dart Stepper( steps: [ Step( title: Text('标题一'), content: Text('这里是内容一'), state: StepState.complete, isActive: true, ), Step( title: Text('标题二'), content: Text('这里是内容二'), state: StepState.complete, isActive: true, ), // 更多步骤... ], currentStep: _currentStep, // 当前步骤的索引 onStepContinue: () { if (_currentStep < _maxSteps - 1) { setState(() { _currentStep++; }); } }, onStepCancel: () { if (_currentStep > 0) { setState(() { _currentStep--; }); } }, ) ``` 如果你想要创建一个标题在图标下方的布局,可以自定义每个`Step`,如下所示: ```dart Step( title: Text('步骤标题'), content: Text('这里是内容'), state: StepState.complete, isActive: true, subtitle: Text('这个文本将作为图标下方的标题显示'), // 自定义的文本 icon: Icon(Icons.info), // 使用一个图标 ), ``` 这样,你就可以通过自定义`subtitle`属性来实现标题在图标下方的布局。记得对每个`Step`都进行相应的自定义设置。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马志武

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值