Skip to content

Instantly share code, notes, and snippets.

@MaxGyver83
Created February 20, 2026 15:05
Show Gist options
  • Select an option

  • Save MaxGyver83/e9b442bdcbf5e5a1e91f74cf344dd84d to your computer and use it in GitHub Desktop.

Select an option

Save MaxGyver83/e9b442bdcbf5e5a1e91f74cf344dd84d to your computer and use it in GitHub Desktop.
Render test
package main
import (
"strconv"
"strings"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)
var (
a fyne.App
window fyne.Window
textArea *fyne.Container
)
func main() {
a = app.New()
window = a.NewWindow("Render Test")
loading := widget.NewLabel("Loading content...")
textArea = container.NewMax(container.NewVScroll(loading))
reloadBtn := widget.NewButton("Reload", nil)
reloadBtn.OnTapped = createRichText
bottom := container.NewHBox(reloadBtn)
main := container.NewBorder(nil, bottom, nil, nil, textArea)
window.SetContent(main)
createRichText()
window.ShowAndRun()
}
func createRichText() {
// create one RichText object per section
objs := []fyne.CanvasObject{}
for i := 0; i < 30; i++ {
letter := rune('a') + rune(i%26)
word := (string(letter)) + "text "
paragraph := strings.Repeat(word, 100) + "\n"
section := "## header " + strconv.Itoa(i+1) + "\n" + paragraph
richText := widget.NewRichTextFromMarkdown(section)
richText.Wrapping = fyne.TextWrapWord
objs = append(objs, richText)
}
scroll := container.NewVScroll(container.NewVBox(objs...))
textArea.Objects = []fyne.CanvasObject{scroll}
textArea.Refresh()
}
@MaxGyver83
Copy link
Copy Markdown
Author

If you need an icon for testing, here it is:

Icon

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment