【问题标题】:How to override the Checkbox widget class in Flutter?如何覆盖 Flutter 中的 Checkbox 小部件类?
【发布时间】:2019-05-21 19:40:26
【问题描述】:

目前我已经开始使用 Flutter。

如何创建自定义小部件或覆盖 Checkbox 小部件类? 我想这样做的原因是我想自定义:

  • 复选框
  • 初始颜色
  • 悬停颜色
  • 专注
  • 按下
  • 已启用选择
  • 已禁用选择
  • 刻度线渲染

【问题讨论】:

  • 您可以嵌入它们或复制源并在那里修改它。这些小部件并不是真正为扩展而设计的。
  • edited your question,改进其格式,或 its quality 以帮助人们理解您的问题,并帮助您获得适当的答案。但您仍可能需要添加更多信息才能让您的问题完全得到解决。
  • @GunterZöchbauer 或者其他人,你知道为什么不建议扩展小部件吗?
  • 这和 Flutter 没有太大关系。继承只是过度使用。继承仅适用于真正的is-A 关系,不适用于does-a-bit-of-the-same 关系。通常如果你认为你需要继承,你可能错了。组合更强大,尤其是从长远来看。

标签: flutter flutter-layout flutter-animation flutter-test


【解决方案1】:

Flutter 更倾向于组合而不是继承,因此扩展 Checkbox 可能不是正确的做法。

您应该创建一个新的StatefulWidget。 在该州的build 方法中,您可以使用自定义参数创建Checkbox,或者呈现完全自定义的内容。 因为您的列表包含非常自定义的内容,例如更改刻度图标,所以您需要使用后者。

这意味着您将构建一个完全自定义的复选框小部件,而无需依赖现有的复选框。 令人兴奋!

但是,您可能不想从头开始,因此请查看现有 Checkboximplementation。 可以复制该代码,然后根据需要对其进行自定义。

还有一件事:完成后,考虑将您的小部件以Pub package 的形式分享给其他 Flutter 程序员,如果他们也想这样做,他们可以从负担中解脱出来。

【讨论】:

    猜你喜欢
    • 2019-05-08
    • 2022-01-25
    • 2018-10-30
    • 1970-01-01
    • 1970-01-01
    • 2019-07-13
    • 1970-01-01
    • 2021-03-17
    • 1970-01-01
    相关资源
    最近更新 更多