ScrollContainer

Inherits: Container < Control < CanvasItem < Node < Object

Inherited By: EditorInspector

用于显示可滚动元素(例如列表)的辅助节点。

描述

滚动容器节点,用于包含 Control 子节点。 滚动容器将在需要时自动创建滚动条子项(HScrollBarVScrollBar 或两者),且仅在滚动容器区域内绘制控件。滚动条将自动绘制在右侧或底部,即垂直或水平,并允许拖动以在滚动容器内移动可视控件及其子项。滚动条还将根据控件相对于滚动容器的 Control.rect_min_size 自动调整抓取器的大小。与 Panel 控件配合使用效果很好。您可以将子项的大小标志设置为 EXPAND,当滚动容器的大小更大(滚动对于所选维度不可见),它们将放大到滚动容器的大小。

属性

bool

follow_focus

false

bool

rect_clip_content

true (overrides Control)

int

scroll_deadzone

0

int

scroll_horizontal

0

bool

scroll_horizontal_enabled

true

int

scroll_vertical

0

bool

scroll_vertical_enabled

true

方法

void

ensure_control_visible ( Control control )

HScrollBar

get_h_scrollbar ( )

VScrollBar

get_v_scrollbar ( )

主题属性

StyleBox

bg

信号

  • scroll_ended ( )

滚动停止时发出。


  • scroll_started ( )

滚动开始时发出。

属性说明

Default

false

Setter

set_follow_focus(value)

Getter

is_following_focus()

如果 true,则 ScrollContainer 将自动滚动到获得焦点的子项(包括间接子项)以确保它们完全可见。


  • int scroll_deadzone

Default

0

Setter

set_deadzone(value)

Getter

get_deadzone()


  • int scroll_horizontal

Default

0

Setter

set_h_scroll(value)

Getter

get_h_scroll()

当前水平滚动值。


  • bool scroll_horizontal_enabled

Default

true

Setter

set_enable_h_scroll(value)

Getter

is_h_scroll_enabled()

如果 true,启用水平滚动。


  • int scroll_vertical

Default

0

Setter

set_v_scroll(value)

Getter

get_v_scroll()

当前垂直滚动值。


  • bool scroll_vertical_enabled

Default

true

Setter

set_enable_v_scroll(value)

Getter

is_v_scroll_enabled()

如果 true,则启用垂直滚动。

方法说明

  • void ensure_control_visible ( Control control )

保证给定的 control 控件可见(必须是 ScrollContainer 的直接或间接子节点)。会被 follow_focus 使用。

注意:在同一帧内刚被加入的节点上无效。如果你希望滚动至新加的子节点,就必须使用 SceneTree.idle_frame 等待至下一帧:

  1. add_child(child_node)
  2. yield(get_tree(), "idle_frame")
  3. ensure_control_visible(child_node)

返回此ScrollContainer的水平滚动条HScrollBar

警告: 这是一个必须的内部节点,移除和释放它可能会导致崩溃。如果你想禁用水平滚动条,请使用scroll_horizontal_enabled。如果你只想隐藏它,则使用其CanvasItem.visible属性。


返回此ScrollContainer的垂直滚动条VScrollBar

警告: 这是一个必需的内部节点,移除和释放它可能会导致崩溃。如果你想禁用垂直滚动条,请使用scroll_vertical_enabled。如果你只想隐藏它,则使用其CanvasItem.visible属性。

Theme Property Descriptions

ScrollContainer 的背景 StyleBox