【问题标题】:Flutter - how do I create a modified version of basic material widget?Flutter - 如何创建基本材质小部件的修改版本?
【发布时间】:2018-12-09 10:23:20
【问题描述】:

我希望从颤振材料小部件中修改 Stepper 小部件。
特别是我想要一个不包含 ContinueCancel 按钮但仅使用 onStepTapped 回调进行导航的版本。

我最初的想法只是 extend Stepper 类,但由于它是一个有状态的小部件,因此构建发生在 _StepperState 类中。我想我也必须扩展它并创建一个扩展 Stepper 的新有状态小部件,它是扩展 StepperState 的状态。后者没有通过flutter/material.dart 公开,我似乎无法轻松扩展它以覆盖_buildVerticalControls 方法。

作为 Flutter 和 dart 的新手,我现在想知道在没有 c&p-ing 整个类的情况下扩展/修改现有(有状态)小部件的正确方法是什么?

【问题讨论】:

  • 这里没有简单的解决方案。要么编辑颤振源(并进行潜在的 PR),要么分叉该代码以使其成为您自己的。

标签: dart flutter


【解决方案1】:

是的,我想我可能知道该怎么做,只要去你的flutter sdk,无论你在哪里安装它,然后在packages//src/material/之类的东西中找到stepper.dart文件,然后在那个文件中找到一个名为

的函数
Widget _buildVerticalBody(int index)

并从该函数的主体中找到语句

_buildVerticalControls()

并像这样注释掉该函数的调用

//_buildVerticalControls()

瞧,按钮不见了;)

【讨论】:

    【解决方案2】:

    我不知道它是否已经回答,但我认为您可以使用 controlsBuilder 属性,然后您可以添加一个空容器以避免显示按钮(没有测试自己,但我认为这可以正常工作)。

    【讨论】:

      猜你喜欢
      • 2022-08-18
      • 2019-01-17
      • 2021-05-18
      • 2023-01-25
      • 2018-11-16
      • 1970-01-01
      • 1970-01-01
      • 2018-09-28
      • 1970-01-01
      相关资源
      最近更新 更多