Flet 文档为您指出的主要方向是在尝试创建自定义小部件/控件时使用 UserControls。 UserControl 本身继承自 Stack,并且还附带一个构建方法,可用于返回类似 Stack 之外的内容。
但如果是这样,为什么不直接继承自容器呢?我使用的代码是这样的:
class ArrowButton(Container):
def __init__(self, arrow_icon: Icons):
super().__init__(
height=100,
width=100,
bgcolor=Colors.WHITE,
border_radius=500,
content=Icon(
name=arrow_icon,
size=100,
color=Colors.BLACK,
)
)
我还可以添加方法来更改状态,所以我不明白为什么我特别需要 UserControl + 它的构建方法。事实上,我有一个不同的项目,我构建了一个自定义选项卡系统(类似于 Web 浏览器),其中所有自定义类(其中 4 个)都继承自 Container,并且整个系统完全按预期工作。
那么是的,什么样的目的/用例需要使用 UserControl 而不是其他一些小部件?我在这里缺少某种特定于 Flutter 的细微差别吗?
你说得完全正确! :) 这实际上就是我们在 v0.21.0 中将其标记为“已弃用”并且很快将在 v0.26.0
中删除的原因我们还更新了与在 Flet 中创建自定义控件相关的文档部分:https://flet.dev/docs/getting-started/custom-controls