Skip to content

NewStack

Creates a container that stacks multiple objects on top of each other, with the last one drawn on top.

Show Code
package main
import (
"image/color"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/canvas"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)
func main() {
myApp := app.New()
myWindow := myApp.NewWindow("Stack")
// Base layer: image
bg := canvas.NewRectangle(color.NRGBA{R: 180, G: 200, B: 255, A: 255})
bg.SetMinSize(fyne.NewSize(400, 300))
// Overlay: centered text
text := canvas.NewText("Hello, Fyne Stack!", color.White)
text.Alignment = fyne.TextAlignCenter
text.TextSize = 24
// Overlay: floating button
btn := widget.NewButton("Click Me", func() {
text.Text = "Button Clicked!"
text.Refresh()
})
btnContainer := container.NewWithoutLayout(btn)
btn.Move(fyne.NewPos(280, 250)) // manual positioning inside stack
// Stack layers: background → text → button
stack := container.NewStack(bg, text, btnContainer)
myWindow.SetContent(stack)
myWindow.Resize(fyne.NewSize(400, 300))
myWindow.ShowAndRun()
}