Skip to content
On this page

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()
}