【问题标题】:Flutter extends Stepper classFlutter 扩展了 Stepper 类
【发布时间】:2019-05-12 09:01:05
【问题描述】:

我还是 Dart 语言的新手。

我想用extends 当前的 Stepper 类创建一个自定义的 Stepper 类。我需要创建自定义 Stepper 的原因是因为我需要覆盖函数 _buildHorizontal

当前解决方法:



import 'package:flutter/material.dart';

class CustomStepper extends Stepper {


  CustomStepper({
    Key key,
    @required Step steps,
    ScrollPhysics physics,
    StepperType type = StepperType.vertical,
    int currentStep = 0,
    ValueChanged<int> onStepTapped,
    VoidCallback onStepContinue,
    VoidCallback onStepCancel,
    ControlsWidgetBuilder controlsBuilder,
  }) : assert(steps != null),
       assert(type != null),
       assert(currentStep != null),
       super(key: key);
}

我的问题是,如何以正确的方式覆盖_buildHorizontal

【问题讨论】:

  • 你到底想达到什么目的?
  • @MiguelRuivo 我正在尝试自定义步进器,例如步进器标题颜色、短划线颜色等。
  • 没有。那是不可能的。而是提出问题/公关

标签: dart flutter


【解决方案1】:

你可以看到hereStepper默认使用的颜色是从Theme获取的,比如原色、强调色等。

如果您想为该步进器更改它,更方便的方法是将其包装在 Theme 中并仅为该小部件覆盖这些属性,例如:

Theme(
        data: ThemeData(
          accentColor: Colors.blueAccent
        ),
        child: Stepper()
)

否则,最好的方法是为您自己的自定义小部件复制 Stepper 的源并根据您的需要进行调整。

【讨论】:

  • 使用ThemeData,对我来说还是不够。我仍然无法将黑色(背景)更改为红色。见图片imgur.com/QvWb7fy。此外,我无法调整步进器中的padding,因为填充的值在类中是硬编码的。见图片imgur.com/5MSuIzn
  • 您可以复制该类并自行调整。暂时是可靠的解决方案之一。
  • 您是否建议复制stepper.dart,给一个新名称,并从复制的.dart 中修改代码?我期待这样的解决方案:stackoverflow.com/a/52659964/4358651
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-31
  • 1970-01-01
  • 2022-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多