ScrollContainer
继承: Container
< Control
< CanvasItem
< Node
< Object
派生: EditorInspector
A container used to provide scrollbars to a child control when needed.
描述
A container used to provide a child control with scrollbars when needed. Scrollbars will automatically be drawn at the right (for vertical) or bottom (for horizontal) and will enable dragging to move the viewable Control (and its children) within the ScrollContainer. Scrollbars will also automatically resize the grabber based on the Control.custom_minimum_size
of the Control relative to the ScrollContainer.
属性
方法
void | ensure_control_visible ( control: Control ) |
HScrollBar | get_h_scroll_bar ( ) |
VScrollBar | get_v_scroll_bar ( ) |
主题属性
信号
scroll_ended ( )
Emitted when scrolling stops when dragging the scrollable area with a touch event. This signal is not emitted when scrolling by dragging the scrollbar, scrolling with the mouse wheel or scrolling with keyboard/gamepad events.
Note: This signal is only emitted on Android or iOS, or on desktop/web platforms when ProjectSettings.input_devices/pointing/emulate_touch_from_mouse
is enabled.
scroll_started ( )
Emitted when scrolling starts when dragging the scrollable area w ith a touch event. This signal is not emitted when scrolling by dragging the scrollbar, scrolling with the mouse wheel or scrolling with keyboard/gamepad events.
Note: This signal is only emitted on Android or iOS, or on desktop/web platforms when ProjectSettings.input_devices/pointing/emulate_touch_from_mouse
is enabled.
枚举
enum ScrollMode:
ScrollMode SCROLL_MODE_DISABLED = 0
Scrolling disabled, scrollbar will be invisible.
ScrollMode SCROLL_MODE_AUTO = 1
Scrolling enabled, scrollbar will be visible only if necessary, i.e. container's content is bigger than the container.
ScrollMode SCROLL_MODE_SHOW_ALWAYS = 2
Scrolling enabled, scrollbar will be always visible.
ScrollMode SCROLL_MODE_SHOW_NEVER = 3
Scrolling enabled, scrollbar will be hidden.
ScrollMode SCROLL_MODE_RESERVE = 4
Combines SCROLL_MODE_AUTO
and SCROLL_MODE_SHOW_ALWAYS
. The scrollbar is only visible if necessary, but the content size is adjusted as if it was always visible. It's useful for ensuring that content size stays the same regardless if the scrollbar is visible.
属性说明
bool
follow_focus = false
If true
, the ScrollContainer will automatically scroll to focused children (including indirect children) to make sure they are fully visible.
ScrollMode horizontal_scroll_mode = 1
void
set_horizontal_scroll_mode ( value: ScrollMode )- ScrollMode get_horizontal_scroll_mode ( )
Controls whether horizontal scrollbar can be used and when it should be visible. See ScrollMode for options.
int
scroll_deadzone = 0
Deadzone for touch scrolling. Lower deadzone makes the scrolling more sensitive.
int
scroll_horizontal = 0
The current horizontal scroll value.
Note: If you are setting this value in the Node._ready
function or earlier, it needs to be wrapped with Object.set_deferred
, since scroll bar's Range.max_value
is not initialized yet.
func _ready():
set_deferred("scroll_horizontal", 600)
float
scroll_horizontal_custom_step = -1.0
Overrides the ScrollBar.custom_step
used when clicking the internal scroll bar's horizontal increment and decrement buttons or when using arrow keys when the ScrollBar
is focused.
int
scroll_vertical = 0
The current vertical scroll value.
Note: Setting it early needs to be deferred, just like in scroll_horizontal
.
func _ready():
set_deferred("scroll_vertical", 600)
float
scroll_vertical_custom_step = -1.0
Overrides the ScrollBar.custom_step
used when clicking the internal scroll bar's vertical increment and decrement buttons or when using arrow keys when the ScrollBar
is focused.
ScrollMode vertical_scroll_mode = 1
void
set_vertical_scroll_mode ( value: ScrollMode )- ScrollMode get_vertical_scroll_mode ( )
Controls whether vertical scrollbar can be used and when it should be visible. See ScrollMode for options.
方法说明
void
ensure_control_visible ( control: Control
)
Ensures the given control
is visible (must be a direct or indirect child of the ScrollContainer). Used by follow_focus
.
Note: This will not work on a node that was just added during the same frame. If you want to scroll to a newly added child, you must wait until the next frame using SceneTree.process_frame
:
add_child(child_node)
await get_tree().process_frame
ensure_control_visible(child_node)
HScrollBar
get_h_scroll_bar ( )
Returns the horizontal scrollbar HScrollBar
of this ScrollContainer.
Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to disable or hide a scrollbar, you can use horizontal_scroll_mode
.
VScrollBar
get_v_scroll_bar ( )
Returns the vertical scrollbar VScrollBar
of this ScrollContainer.
Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to disable or hide a scrollbar, you can use vertical_scroll_mode
.
主题属性说明
StyleBox
panel
The background StyleBox
of the ScrollContainer.
本方法通常需要用户覆盖才能生效。
本方法无副作用,不会修改该实例的任何成员变量。
本方法除了能接受在此处描述的参数外,还能够继续接受任意数量的参数。
本方法用于构造某个类型。
调用本方法无需实例,可直接使用类名进行调用。
本方法描述的是使用本类型作为左操作数的有效运算符。
这个值是由下列位标志构成位掩码的整数。
无返回值。