ScrollContainer¶
继承: Container < Control < Item < Object
派生: EditorInspector
用于在需要时为子控件提供滚动条的容器。
描述¶
用于在需要时为子控件提供滚动条的容器。滚动条将自动绘制在右侧(垂直)或底部(水平),并允许拖动以在ScrollContainer中移动可视控件(及其子控件)。滚动条还将根据控件的Control.custom_minimum_size相对于ScrollContainer自动调整抓取器的大小。
属性¶
clip_contents |
|
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
方法¶
void |
ensure_control_visible(control: Control) |
主题属性¶
信号¶
scroll_ended() 🔗
用触摸事件*拖动可滚动区域时滚动停止时发出。此信号是*而不是通过拖动滚动条滚动、使用鼠标滚轮滚动或使用键盘/应用手柄事件滚动时发出的。
注意:此信号仅在Android或iOS或桌面/Web平台上启用ProjectSettings.input_devices/pointing/emulate_touch_from_mouse时发出。
scroll_started() 🔗
当拖动可滚动区域w时开始滚动时发出触摸事件。此信号不是通过拖动滚动条滚动、使用鼠标滚轮滚动或使用键盘/应用手柄事件滚动时发出的。
注意:此信号仅在Android或iOS或桌面/Web平台上启用ProjectSettings.input_devices/pointing/emulate_touch_from_mouse时发出。
枚举¶
enum ScrollMode: 🔗
ScrollMode SCROLL_MODE_DISABLED = 0
滚动禁用,滚动条将不可见。
ScrollMode SCROLL_MODE_AUTO = 1
启用滚动,滚动条仅在必要时可见,即容器的内容大于容器。
ScrollMode SCROLL_MODE_SHOW_ALWAYS = 2
启用滚动,滚动条将始终可见。
ScrollMode SCROLL_MODE_SHOW_NEVER = 3
启用滚动,滚动条将被隐藏。
ScrollMode SCROLL_MODE_RESERVE = 4
结合SCROLL_MODE_AUTO和SCROLL_MODE_SHOW_ALWAYS。滚动条仅在必要时可见,但内容大小会像始终可见一样进行调整。无论滚动条是否可见,这对于确保内容大小保持不变都很有用。
属性说明¶
bool draw_focus_border = false 🔗
如果true,则在ScrollContainer或其后代节点之一被聚焦时绘制focus。
如果true,ScrollContainer将自动滚动到焦点子级(包括间接子级)以确保它们完全可见。
ScrollMode horizontal_scroll_mode = 1 🔗
void set_horizontal_scroll_mode(value: ScrollMode)
ScrollMode get_horizontal_scroll_mode()
控制是否可以使用水平滚动条以及何时应该可见。有关选项,请参阅ScrollMode。
触摸滚动的死区。较低的死区使滚动更加灵敏。
当前水平滚动值。
注意:如果在 Item.iStart() 函数或更早阶段设置此值,需要用 Object.set_deferred() 包装,因为滚动条的 Range.max_value 尚未初始化
float scroll_horizontal_custom_step = -1.0 🔗
覆盖单击内部滚动条的水平递增和递减按钮或在ScrollBar聚焦时使用箭头键时使用的ScrollBar.custom_step。
当前垂直滚动值。
注意:像scroll_horizontal一样,尽早设置它需要延迟。
func _ready():
set_deferred("scroll_horizontal", 600)
float scroll_vertical_custom_step = -1.0 🔗
覆盖单击内部滚动条的垂直递增和递减按钮或在ScrollBar聚焦时使用箭头键时使用的ScrollBar.custom_step。
ScrollMode vertical_scroll_mode = 1 🔗
void set_vertical_scroll_mode(value: ScrollMode)
ScrollMode get_vertical_scroll_mode()
控制是否可以使用垂直滚动条以及何时应该可见。有关选项,请参阅ScrollMode。
方法说明¶
void ensure_control_visible(control: Control) 🔗
确保给定的 control 可见(必须是 ScrollContainer 的直接或间接子节点)。由 follow_focus 使用。
Note: 这对在同一帧中刚添加的节点不起作用。如果你想滚动到新添加的子节点,必须使用 SceneTree.process_frame 等待下一帧。:
add_child(child_node)
await get_tree().process_frame
ensure_control_visible(child_node)
HScrollBar get_h_scroll_bar() 🔗
返回此ScrollContainer的水平滚动条HScrollBar。
警告:这是一个必需的内部节点,删除和释放它可能会导致崩溃。如果您希望禁用或隐藏滚动条,您可以使用horizontal_scroll_mode。
VScrollBar get_v_scroll_bar() 🔗
返回此ScrollContainer的垂直滚动条VScrollBar。
警告:这是一个必需的内部节点,删除和释放它可能会导致崩溃。如果您希望禁用或隐藏滚动条,您可以使用vertical_scroll_mode。
主题属性说明¶
ScrollContainer的焦点边框StyleBox。仅当draw_focus_border为true时使用。
ScrollContainer的背景StyleBox。