ScrollArea
スクロール可能なビューポートと、呼び出し側でスタイルできるスクロールバー、つまみ、コーナーを組み合わせます。
デモを読み込み中…
func ScrollAreaExample() *ui.Element {
scrollArea := ui.NewScrollArea(ui.ScrollAreaRootProps{ViewportSize: func() ui.Extent {
return ui.Extent{Width: 320, Height: 160}
}, ContentSize: func() ui.Extent {
return ui.Extent{Width: 320, Height: 880}
}})
return scrollArea.Root().Child(func() *native.Node {
state := ui.UseScrollAreaState()
viewport := scrollArea.Viewport().Width(320).Height(160).Overflow("hidden").Child(
scrollArea.Content(ui.PartProps{Style: func() ui.StyleBuilder {
return ui.Style().Transform(fmt.Sprintf("translateY(%gpx)", -state().Offset.Y))
}}).Child(func() *native.Node {
rows := make([]*ui.Element, 0, 40)
for index := range 40 {
rows = append(rows, ui.Text("Row ", index).Height(22))
}
return ui.Fragment(rows)
}),
)
scrollbar := scrollArea.Scrollbar(ui.ScrollAreaScrollbarProps{Orientation: "vertical"}).Child(
scrollArea.Thumb(ui.ScrollAreaThumbProps{Orientation: "vertical"}),
)
return ui.Fragment(viewport, scrollbar)
})
}#インポート
github.com/egoist/quickgui/go/ui から ui をインポートします。
import (
"fmt"
"github.com/egoist/quickgui/go/ui"
)#使い方
func ScrollAreaExample() *ui.Element {
scrollArea := ui.NewScrollArea(ui.ScrollAreaRootProps{ViewportSize: func() ui.Extent {
return ui.Extent{Width: 320, Height: 160}
}, ContentSize: func() ui.Extent {
return ui.Extent{Width: 320, Height: 880}
}})
return scrollArea.Root().Child(func() *native.Node {
state := ui.UseScrollAreaState()
viewport := scrollArea.Viewport().Width(320).Height(160).Overflow("hidden").Child(
scrollArea.Content(ui.PartProps{Style: func() ui.StyleBuilder {
return ui.Style().Transform(fmt.Sprintf("translateY(%gpx)", -state().Offset.Y))
}}).Child(func() *native.Node {
rows := make([]*ui.Element, 0, 40)
for index := range 40 {
rows = append(rows, ui.Text("Row ", index).Height(22))
}
return ui.Fragment(rows)
}),
)
scrollbar := scrollArea.Scrollbar(ui.ScrollAreaScrollbarProps{Orientation: "vertical"}).Child(
scrollArea.Thumb(ui.ScrollAreaThumbProps{Orientation: "vertical"}),
)
return ui.Fragment(viewport, scrollbar)
})
}#構成
scrollArea.RootscrollArea.ViewportscrollArea.ContentscrollArea.ScrollbarscrollArea.ThumbscrollArea.Corner
#API リファレンス
項目を展開すると説明と完全なシグネチャが表示されます。ダッシュは宣言に既定値が記載されていないことを示します。
NewScrollArea
ソースを見るui.NewScrollArea(props ...ScrollAreaRootProps) *ScrollAreaComponentNewScrollArea declares a ScrollArea instance. Optional props provide initial settings.
Reffunc(*native.Node)—
Receives the retained native node after construction. Keep imperative work in event or lifecycle callbacks.
func(*native.Node)ソースを見るStyleany—
Reusable layout, typography, color, and interaction-state styles. Build with ui.Style() and compose with Merge.
anyソースを見るChildrenPartChildren—
Content mounted inside the component. Compound child callbacks run after the parent context exists.
PartChildrenソースを見るDisabledany—
Prevents activation and exposes the disabled state to accessibility. Compound parts inherit a disabled root.
anyソースを見るRolestring—
FocusOnPointerany—
Groupany—
AriaLabelany—
TabIndex*float64—
Controls sequential keyboard focus order. Omit to retain the component’s default focus behavior.
*float64ソースを見るOnClickfunc(*native.Event)—
Called after QuickGUI resolves an activation, including supported keyboard activation.
func(*native.Event)ソースを見るOnDoubleClickfunc(*native.Event)—
OnContextMenufunc(*native.Event)—
OnPointerfunc(*native.Event)—
OnMouseEnterfunc(*native.Event)—
OnMouseLeavefunc(*native.Event)—
OnMouseDownfunc(*native.Event)—
OnMouseUpfunc(*native.Event)—
OnKeyDownfunc(*native.Event)—
OnKeyUpfunc(*native.Event)—
OnFocusfunc(*native.Event)—
OnBlurfunc(*native.Event)—
ViewportSizefunc() Extent—
ContentSizefunc() Extent—
OverflowEdgeThresholdany—
OnScrollStateChangefunc(ScrollAreaState, *native.Event)—
ScrollArea.Disabled
ソースを見るscrollArea.Disabled(value any) *ScrollAreaComponentPrevents activation and exposes the disabled state to accessibility. Compound parts inherit a disabled root.
ScrollArea.ViewportSize
ソースを見るscrollArea.ViewportSize(value any) *ScrollAreaComponentDeclared scroll viewport extent.
ScrollArea.ContentSize
ソースを見るscrollArea.ContentSize(value any) *ScrollAreaComponentDeclared scroll content extent.
ScrollArea.OverflowEdgeThreshold
ソースを見るscrollArea.OverflowEdgeThreshold(value any) *ScrollAreaComponentDistance from an edge that still counts as being at that edge.
ScrollArea.OnScrollStateChange
ソースを見るscrollArea.OnScrollStateChange(value func(ScrollAreaState, *native.Event)) *ScrollAreaComponentReports clamped offset and derived overflow state.
ScrollArea.Root
ソースを見るscrollArea.Root() *ElementConfigures root for this part. The declared type and source define the accepted value.
ScrollArea.Viewport
ソースを見るscrollArea.Viewport(options ...PartProps) *ElementConfigures viewport for this part. The declared type and source define the accepted value.
Reffunc(*native.Node)—
Receives the retained native node after construction. Keep imperative work in event or lifecycle callbacks.
func(*native.Node)ソースを見るStyleany—
Reusable layout, typography, color, and interaction-state styles. Build with ui.Style() and compose with Merge.
anyソースを見るChildrenPartChildren—
Content mounted inside the component. Compound child callbacks run after the parent context exists.
PartChildrenソースを見るDisabledany—
Prevents activation and exposes the disabled state to accessibility. Compound parts inherit a disabled root.
anyソースを見るRolestring—
FocusOnPointerany—
Groupany—
AriaLabelany—
TabIndex*float64—
Controls sequential keyboard focus order. Omit to retain the component’s default focus behavior.
*float64ソースを見るOnClickfunc(*native.Event)—
Called after QuickGUI resolves an activation, including supported keyboard activation.
func(*native.Event)ソースを見るOnDoubleClickfunc(*native.Event)—
OnContextMenufunc(*native.Event)—
OnPointerfunc(*native.Event)—
OnMouseEnterfunc(*native.Event)—
OnMouseLeavefunc(*native.Event)—
OnMouseDownfunc(*native.Event)—
OnMouseUpfunc(*native.Event)—
OnKeyDownfunc(*native.Event)—
OnKeyUpfunc(*native.Event)—
OnFocusfunc(*native.Event)—
OnBlurfunc(*native.Event)—
ScrollArea.Content
ソースを見るscrollArea.Content(options ...PartProps) *ElementConfigures content for this part. The declared type and source define the accepted value.
Reffunc(*native.Node)—
Receives the retained native node after construction. Keep imperative work in event or lifecycle callbacks.
func(*native.Node)ソースを見るStyleany—
Reusable layout, typography, color, and interaction-state styles. Build with ui.Style() and compose with Merge.
anyソースを見るChildrenPartChildren—
Content mounted inside the component. Compound child callbacks run after the parent context exists.
PartChildrenソースを見るDisabledany—
Prevents activation and exposes the disabled state to accessibility. Compound parts inherit a disabled root.
anyソースを見るRolestring—
FocusOnPointerany—
Groupany—
AriaLabelany—
TabIndex*float64—
Controls sequential keyboard focus order. Omit to retain the component’s default focus behavior.
*float64ソースを見るOnClickfunc(*native.Event)—
Called after QuickGUI resolves an activation, including supported keyboard activation.
func(*native.Event)ソースを見るOnDoubleClickfunc(*native.Event)—
OnContextMenufunc(*native.Event)—
OnPointerfunc(*native.Event)—
OnMouseEnterfunc(*native.Event)—
OnMouseLeavefunc(*native.Event)—
OnMouseDownfunc(*native.Event)—
OnMouseUpfunc(*native.Event)—
OnKeyDownfunc(*native.Event)—
OnKeyUpfunc(*native.Event)—
OnFocusfunc(*native.Event)—
OnBlurfunc(*native.Event)—
ScrollArea.Scrollbar
ソースを見るscrollArea.Scrollbar(options ...ScrollAreaScrollbarProps) *ElementConfigures scrollbar for this part. The declared type and source define the accepted value.
Reffunc(*native.Node)—
Receives the retained native node after construction. Keep imperative work in event or lifecycle callbacks.
func(*native.Node)ソースを見るStyleany—
Reusable layout, typography, color, and interaction-state styles. Build with ui.Style() and compose with Merge.
anyソースを見るChildrenPartChildren—
Content mounted inside the component. Compound child callbacks run after the parent context exists.
PartChildrenソースを見るDisabledany—
Prevents activation and exposes the disabled state to accessibility. Compound parts inherit a disabled root.
anyソースを見るRolestring—
FocusOnPointerany—
Groupany—
AriaLabelany—
TabIndex*float64—
Controls sequential keyboard focus order. Omit to retain the component’s default focus behavior.
*float64ソースを見るOnClickfunc(*native.Event)—
Called after QuickGUI resolves an activation, including supported keyboard activation.
func(*native.Event)ソースを見るOnDoubleClickfunc(*native.Event)—
OnContextMenufunc(*native.Event)—
OnPointerfunc(*native.Event)—
OnMouseEnterfunc(*native.Event)—
OnMouseLeavefunc(*native.Event)—
OnMouseDownfunc(*native.Event)—
OnMouseUpfunc(*native.Event)—
OnKeyDownfunc(*native.Event)—
OnKeyUpfunc(*native.Event)—
OnFocusfunc(*native.Event)—
OnBlurfunc(*native.Event)—
Orientationstring—
KeepMounted*bool—
ScrollArea.Thumb
ソースを見るscrollArea.Thumb(options ...ScrollAreaThumbProps) *ElementConfigures thumb for this part. The declared type and source define the accepted value.
Reffunc(*native.Node)—
Receives the retained native node after construction. Keep imperative work in event or lifecycle callbacks.
func(*native.Node)ソースを見るStyleany—
Reusable layout, typography, color, and interaction-state styles. Build with ui.Style() and compose with Merge.
anyソースを見るChildrenPartChildren—
Content mounted inside the component. Compound child callbacks run after the parent context exists.
PartChildrenソースを見るDisabledany—
Prevents activation and exposes the disabled state to accessibility. Compound parts inherit a disabled root.
anyソースを見るRolestring—
FocusOnPointerany—
Groupany—
AriaLabelany—
TabIndex*float64—
Controls sequential keyboard focus order. Omit to retain the component’s default focus behavior.
*float64ソースを見るOnClickfunc(*native.Event)—
Called after QuickGUI resolves an activation, including supported keyboard activation.
func(*native.Event)ソースを見るOnDoubleClickfunc(*native.Event)—
OnContextMenufunc(*native.Event)—
OnPointerfunc(*native.Event)—
OnMouseEnterfunc(*native.Event)—
OnMouseLeavefunc(*native.Event)—
OnMouseDownfunc(*native.Event)—
OnMouseUpfunc(*native.Event)—
OnKeyDownfunc(*native.Event)—
OnKeyUpfunc(*native.Event)—
OnFocusfunc(*native.Event)—
OnBlurfunc(*native.Event)—
Orientationstring—
ScrollArea.Corner
ソースを見るscrollArea.Corner(options ...PartProps) *ElementConfigures corner for this part. The declared type and source define the accepted value.
Reffunc(*native.Node)—
Receives the retained native node after construction. Keep imperative work in event or lifecycle callbacks.
func(*native.Node)ソースを見るStyleany—
Reusable layout, typography, color, and interaction-state styles. Build with ui.Style() and compose with Merge.
anyソースを見るChildrenPartChildren—
Content mounted inside the component. Compound child callbacks run after the parent context exists.
PartChildrenソースを見るDisabledany—
Prevents activation and exposes the disabled state to accessibility. Compound parts inherit a disabled root.
anyソースを見るRolestring—
FocusOnPointerany—
Groupany—
AriaLabelany—
TabIndex*float64—
Controls sequential keyboard focus order. Omit to retain the component’s default focus behavior.
*float64ソースを見るOnClickfunc(*native.Event)—
Called after QuickGUI resolves an activation, including supported keyboard activation.
func(*native.Event)ソースを見るOnDoubleClickfunc(*native.Event)—
OnContextMenufunc(*native.Event)—
OnPointerfunc(*native.Event)—
OnMouseEnterfunc(*native.Event)—
OnMouseLeavefunc(*native.Event)—
OnMouseDownfunc(*native.Event)—
OnMouseUpfunc(*native.Event)—
OnKeyDownfunc(*native.Event)—
OnKeyUpfunc(*native.Event)—
OnFocusfunc(*native.Event)—
OnBlurfunc(*native.Event)—
Element
ソースを見るpart.Child(content).Style(style)Every part returns a fluent element. Strings, numbers, elements, and deferred child factories compose directly.
ChildChild(child any) *Element—
Child appends content and returns this element. Content can be an element, native node, scalar, accessor, or node-returning construction callback.
Child(child any) *Elementソースを見るChildrenChildren(children ...any) *Element—
Children appends multiple children in order without replacing existing content. It also accepts []any, []*Element, and []*native.Node slices as arguments. Read the retained child nodes through element.Node.Children.
Children(children ...any) *Elementソースを見るStyleStyle(style StyleBuilder) *Element—
Style merges a reusable style. Scalar accessors retain independent native bindings.
Style(style StyleBuilder) *Elementソースを見るOnClickOnClick(handler func()) *Element—
RefRef(handler func(*native.Node)) *Element—
Ref exposes the native handle once at this point in the declaration chain.
Ref(handler func(*native.Node)) *Elementソースを見る