有谁知道是否可以扩展 flutter 小部件?

Does anyone know if it is possible to extend a flutter widget?

是否可以扩展小部件?以 CalendarDatePicker 小部件为例。我喜欢现有的功能,但我希望能够对其进行扩展。

我希望能够在每一天下面都有一个小点,它有一些事件,无论是一个还是多个事件。如果某天没有任何事件,则无需在该日下显示任何内容。事件将来自 firebase Firestore。

原因是:

  1. 我喜欢 CalendarDatePicker,而且我更喜欢不必安装新包。我看到人们正在使用 Table_Calendar。这很好,但我正在尝试重用已经存在的东西并避免安装太多包。
  2. 当已经完成 98% 的工作时,我不想从头开始设计。

谢谢

您可以扩展小部件并使用 extends 关键字覆盖其属性和方法(参见 docs)。这是简单的 OOP 继承。但无论如何,你应该完全覆盖构建方法来补充现有的 UI。这样做,将现有代码从 CalendarDatePicker 构建方法复制到您自定义的 class 构建方法并根据需要更新此代码:

class CustomDatePicker extends CalendarDatePicker {
  const CustomDatePicker({
    Key? key,
    // here you can use constructor properties that you need
    // and pass them to superclass constructor
  }) : super(...);

  @override
  Widget build(BuildContext context) {
    // use code from CalendarDatePicker build method
    // and update it as you wish
  }
}