Обивка в макете Fyne - PullRequest
       28

Обивка в макете Fyne

1 голос
/ 12 марта 2020

Я пытаюсь настроить макет приложения с помощью Fyne (https://fyne.io/), но у меня возникли некоторые проблемы; вот мой код:

func main() {
    myApp := app.New()
    myWindow := myApp.NewWindow("Demo")
    myWindow.SetMaster()
    myWindow.SetPadded(false)
    myWindow.Resize(fyne.NewSize(1024, 600))
    //myWindow.SetFullScreen(true)

    r1 := canvas.NewRectangle(color.RGBA{255, 0, 0, 255})
    r1.SetMinSize(fyne.NewSize(1024, 110))
    top := fyne.NewContainerWithLayout(layout.NewMaxLayout(), r1)

    r2 := canvas.NewRectangle(color.RGBA{0, 255, 0, 255})
    r2.SetMinSize(fyne.NewSize(1024, 400))
    middle := fyne.NewContainerWithLayout(layout.NewMaxLayout(), r2)
    message := widget.NewLabel("message")
    messageWrap := fyne.NewContainerWithLayout(layout.NewCenterLayout(), message)
    middle.AddObject(messageWrap)

    r3 := canvas.NewRectangle(color.RGBA{255, 0, 255, 255})
    r3.SetMinSize(fyne.NewSize(1024, 55))
    bottom := fyne.NewContainerWithLayout(layout.NewMaxLayout(), r3)
    data := widget.NewLabel("data")
    dataWrap := fyne.NewContainerWithLayout(layout.NewCenterLayout(), data)
    ua := widget.NewLabel("ua")
    uaWrap := fyne.NewContainerWithLayout(layout.NewCenterLayout(), ua)
    bottomWrap := fyne.NewContainerWithLayout(layout.NewBorderLayout(nil, nil, dataWrap, uaWrap), dataWrap, uaWrap)
    bottom.AddObject(bottomWrap)

    content := fyne.NewContainerWithLayout(layout.NewBorderLayout(top, bottom, nil, nil), top, bottom, middle)
    myWindow.SetContent(content)

    myWindow.ShowAndRun()
}

и вот вывод:

enter image description here

Я новичок в этой библиотеке, и я очень трудно понять, как это работает; Мне нужно было бы удалить «отступ» между блоками top, middle и bottom в моем макете; Есть ли способ сделать это?

1 Ответ

3 голосов
/ 13 марта 2020

Вы используете BorderLayout, этот макет (как и большинство встроенных) добавляет отступ между элементами, нет конфигурации макета, чтобы отключить это.

У вас есть два варианта:

  1. Передайте свой собственный макет, который перемещает и изменяет размеры элементов в точности так, как вы хотели бы

  2. Установите пользовательскую тему, где для отступа установлено значение 0 ( не рекомендуется).

Вы обнаружите, что в библиотеке учитываются принципы работы виджетов и макетов. Одна из вещей, которую он навязывает, заключается в том, что каждая стандартная компоновка разделяет каждый элемент с отступом.

...