Grid Layout

The grid layout lays out the elements of a container in a grid pattern with a fixed number of columns. Items will fill a single row until the number of columns is met, after this a new row will be created. Vertical space will be split equally between each of the rows of objects.

You create a grid layout using layout.NewGridLayout(cols) where cols is the number of items (columns) you wish to have in each row. This layout is then passed as the first parameter to fyne.NewContainerWithLayout(...).

If you resize the container then each of the cells will resize equally to share the available space.

Example Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package main

import (
	"image/color"

	"fyne.io/fyne"
	"fyne.io/fyne/app"
	"fyne.io/fyne/canvas"
	"fyne.io/fyne/layout"
)

func main() {
	myApp := app.New()
	myWindow := myApp.NewWindow("Grid Layout")

	text1 := canvas.NewText("1", color.White)
	text2 := canvas.NewText("2", color.White)
	text3 := canvas.NewText("3", color.White)
	grid := fyne.NewContainerWithLayout(layout.NewGridLayout(2),
		text1, text2, text3)
	myWindow.SetContent(grid)
	myWindow.ShowAndRun()
}