Skip to content

Accordion

An expandable and collapsible list of items, allowing users to show or hide sections of related content in Fyne.

Show Code
package main
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)
func main() {
myApp := app.New()
myWindow := myApp.NewWindow("Accordion")
// Create accordion items
item1 := widget.NewAccordionItem("Admin", container.NewVBox(
widget.NewButton("Dashboard", func() {}),
widget.NewButton("Users", func() {}),
widget.NewButton("Logs", func() {}),
))
item2 := widget.NewAccordionItem("Clients", widget.NewLabel("This is the clients section."))
item3 := widget.NewAccordionItem("Stock", widget.NewLabel("This is the stock section."))
// Create accordion
acc := widget.NewAccordion(item1, item2, item3)
// Optional: Open one section by default
acc.Open(0) // Opens first section
myWindow.SetContent(container.NewStack(acc))
myWindow.Resize(fyne.NewSize(300, 200))
myWindow.ShowAndRun()
}