List 列表 #
List小部件是工具包的集合小部件之一。这些小部件旨在帮助在呈现大量数据时构建真正高效的界面。您还可以看到具有类似API的表和树小部件。由于这种设计,它们使用起来有点复杂。
List使用回调函数在需要时请求数据。有3个主要回调,Length、CreateItem和UpdateItem。Length回调(首先传递)是最简单的,它返回要显示的数据中有多少项。其他的与模板有关——如何创建、缓存和重用图形元素。
CreateItem回调返回一个新的模板对象。当显示小部件时,这将与真实数据一起重新使用。此对象的MinSize将影响列表的最小大小。最后调用UpdateItem将数据项应用于缓存模板。使用此选项可将内容设置为可显示。
go
package main
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/widget"
)
var data = []string{"a", "string", "list"}
func main() {
myApp := app.New()
myWindow := myApp.NewWindow("List Widget")
list := widget.NewList(
func() int {
return len(data)
},
func() fyne.CanvasObject {
return widget.NewLabel("template")
},
func(i widget.ListItemID, o fyne.CanvasObject) {
o.(*widget.Label).SetText(data[i])
})
myWindow.SetContent(list)
myWindow.ShowAndRun()
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28