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查看源码