Skip to content
On this page

组件

Fyne工具包中的小部件旨在实现干净、愉快的用户交互,遵循标准主题,支持快速应用程序开发、可靠测试和易于维护。有各种各样的设计考虑因素促进了这一目标,我们将在本页中探讨它们。

行为API

关于标准小部件,您会注意到的一点是,API完全与行为和状态有关,但很少控制元素的实际外观。这是故意的。它使我们的代码和应用程序开发人员的代码能够专注于小部件的行为,以便它的呈现过程可以留给其他代码。这使得测试更加容易,事实上,完整的应用程序可以通过内存中的单元测试运行,而无需渲染应用程序。

您可以扩展现有的小部件以添加新的行为,而无需担心它是如何呈现的。也可以编写自己的组件,应用程序不限于使用提供的小部件集。当构建您自己的小部件时,您会注意到渲染细节与状态完全分离-这是上面提到的设计的一部分。WidgetRenderer(呈现Widget的代码)通常保存对它将呈现的小部件的引用,以访问状态或其他信息。当一个小部件状态发生变化时,就会调用Refresh()-然后会要求渲染器刷新,它应该更新显示以反映新状态。建议自定义小部件使用当前主题,但可以选择指定自己的大小、颜色和图标。

内容填充

标准小部件使用主题指定的填充来在其图形组件周围留出适当的空间。在v2.0.0版本中,大多数小部件的高度和基线都是标准化的,以确保默认情况下标准布局能够很好地对齐。如果您正在构建自定义小部件,建议遵循这些准则。

theme.Ppadding()的值在布局中用于分隔容器的元素,它在应用程序的各个部分周围创建了一个标准化的空间。然而,有些小部件的内容应该从范围的边缘插入。考虑一下Entry,它有一个背景和一个突出到边缘的下划线,但它的内容应该是嵌入的。因此,我们已经标准化了用于插入的间距,以便对齐。

小部件的标准插入或内容填充当前定义为2*theme.Ppadding()。填充的标准值为4,这意味着标准插入为8。您可以在标签和条目中看到(文本)内容是如何如此插入的,以便它们的内容在相邻放置时水平和垂直对齐。