前言
在 Fyne 应用程序中,每个都Container使用简单的布局算法来排列它的子元素。Fyne 在fyne.io/fyne/v2/layout包中定义了许多可用的布局。如果您查看代码,您会发现它们都实现了该Layout接口。
一、水平居中
任何应用程序都可以提供自定义布局来以非标准方式排列小部件。为此,您需要在自己的代码中实现两个接口。
type Layout interface {
Layout([]CanvasObject, Size)
MinSize(objects []CanvasObject) Size
}
为了说明这一点,我们将创建一个新布局,将元素水平排列并在容器中居中。
首先,我们将定义一个新类型 ,HCenterLayout并定义它的最小尺寸。要计算这一点,我们只需将所有子元素的宽度和高度(指定[]fyne.CanvasObject为MinSize.
import "fyne.io/fyne/v2"
type HCenterLayout struct {
}
func (d *HCenterLayout) MinSize(objects []fyne.CanvasObject) fyne.Size {
w,