0
点赞
收藏
分享

微信扫一扫

Flutter的stepper 参数详解

Stepper的构造函数

 const Stepper({
    super.key,
    required this.steps,
    this.physics,
    this.type = StepperType.vertical,
    this.currentStep = 0,
    this.onStepTapped,
    this.onStepContinue,
    this.onStepCancel,
    this.controlsBuilder,
    this.elevation,
    this.margin,
    this.stepIconBuilder,
  }) : assert(0 <= currentStep && currentStep < steps.length);

构造函数各个参数的含义

Stepper 构造函数用于创建一个步骤指示器(stepper),该指示器通常用于指导用户完成多个连续的步骤,例如表单的多个部分。以下是 Stepper 构造函数的各个参数的详细介绍:

  • key(类型:Key,可选参数):

此参数用于在 widget 树中标识 Stepper,通常用于测试或管理目的。

  • steps(类型:List<Step>,必需参数):

这是一个包含步骤信息的列表,每个步骤都需要一个 Step 对象。 Step 对象包含有关每个步骤的信息,例如标题、内容、状态等。 步骤按照它们在列表中的顺序显示在 stepper 中。

  • physics(类型:ScrollPhysics,可选参数):

此参数控制步骤指示器的滚动行为,例如滚动是否可以反弹、滚动到边界时的效果等。 默认情况下,它是 null,并且会使用父级 ListView 的默认滚动行为。

  • type(类型:StepperType,可选参数):

此参数定义了 stepper 的类型,可以是 StepperType.vertical(垂直)或 StepperType.horizontal(水平)。 默认为 StepperType.vertical,表示垂直方向的 stepper。

  • currentStep(类型:int,可选参数):

表示当前选定的步骤的索引。默认为 0,即第一个步骤。 您可以通过更改此值来控制 stepper 的当前活动步骤。

  • onStepTapped(类型:Function(int)?,可选参数):

当用户点击步骤时触发的回调函数。 回调函数会接收一个整数参数,表示被点击的步骤的索引。

  • onStepContinue(类型:VoidCallback,可选参数):

当用户点击“继续”按钮时触发的回调函数。 通常用于在用户完成一个步骤后执行一些操作。

  • onStepCancel(类型:VoidCallback,可选参数):

当用户点击“取消”按钮时触发的回调函数。 通常用于在用户取消一个步骤后执行一些操作。

  • controlsBuilder(类型:Widget Function(BuildContext, {VoidCallback? onStepContinue, VoidCallback? onStepCancel})?,可选参数):

此参数允许自定义步骤指示器的控件(继续和取消按钮)。 您可以通过此回调函数构建自定义的控件,并在需要时添加自定义逻辑。

  • elevation(类型:double,可选参数):

用于指定 stepper 表面的阴影效果的高度。

  • margin(类型:EdgeInsetsGeometry,可选参数):

用于指定 stepper 的外边距,即 stepper 和其周围其他元素之间的间距。

  • stepIconBuilder(类型:Widget Function(int, bool),可选参数):

用于自定义每个步骤的图标(默认是数字)。这个回调函数接收两个参数,一个是步骤的索引,另一个是表示步骤是否已完成的布尔值。

  • assert

构造函数中的 assert 语句用于确保 currentStep 的值在有效范围内(大于等于 0 且小于步骤数目)。这是为了避免出现超出步骤列表范围的错误。

physics参数

physics 参数用于控制 Stepper(步骤指示器)的滚动行为,特别是在垂直方向上。physics 的值是一个 ScrollPhysics 类型的对象,它定义了滚动的物理性质。const AlwaysScrollableScrollPhysics() 是其中一个 ScrollPhysics 的实例,表示一直允许滚动。

const AlwaysScrollableScrollPhysics() 意味着在所有情况下都允许垂直滚动,即使内容不足以滚动,也会保持可滚动状态。这通常用于确保即使内容不够多,也可以滚动,以使用户能够自由浏览所有步骤。

除了 AlwaysScrollableScrollPhysics,还有其他几种 ScrollPhysics 的选项,可以根据需要选择:

  • BouncingScrollPhysics:iOS 风格的弹性滚动物理性质,当用户滚动到边缘时会有弹性效果。

  • ClampingScrollPhysics:当用户滚动到边缘时,会自动将滚动限制在边缘,而不产生弹性效果。

  • FixedExtentScrollPhysics:用于固定列表项高度的情况,每个项目的高度相同。

  • NeverScrollableScrollPhysics:禁用滚动,内容不能滚动。

  • PageScrollPhysics:用于分页滚动,类似于左右滑动页面。

举报

相关推荐

0 条评论