ScrollContainer

Hereda: Container < Control < CanvasItem < Node < Object

Heredado por: EditorInspector

Un contenedor utilizado para proporcionar barras de desplazamiento a un control hijo cuando sea necesario.

Descripción

Un contenedor utilizado para proporcionar a un control hijo barras de desplazamiento cuando sea necesario. Las barras de desplazamiento se dibujarán automáticamente a la derecha (para vertical) o abajo (para horizontal) y permitirán arrastrar para mover el Control visible (y sus hijos) dentro del ScrollContainer. Las barras de desplazamiento también cambiarán automáticamente el tamaño del agarrador según el Control.custom_minimum_size del Control en relación con el ScrollContainer.

Tutoriales

Propiedades

bool

clip_contents

true (overrides Control)

bool

draw_focus_border

false

bool

follow_focus

false

ScrollMode

horizontal_scroll_mode

1

int

scroll_deadzone

0

int

scroll_horizontal

0

float

scroll_horizontal_custom_step

-1.0

int

scroll_vertical

0

float

scroll_vertical_custom_step

-1.0

ScrollMode

vertical_scroll_mode

1

Métodos

void

ensure_control_visible(control: Control)

HScrollBar

get_h_scroll_bar()

VScrollBar

get_v_scroll_bar()

Propiedades del Tema

StyleBox

focus

StyleBox

panel


Señales

scroll_ended() 🔗

Emitida cuando el desplazamiento se detiene al arrastrar el área desplazable con un evento táctil. Esta señal no se emite cuando se desplaza arrastrando la barra de desplazamiento, desplazando con la rueda del ratón o desplazando con eventos de teclado/gamepad.

Nota: Esta señal solo se emite en Android o iOS, o en plataformas de escritorio/web cuando ProjectSettings.input_devices/pointing/emulate_touch_from_mouse está habilitado.


scroll_started() 🔗

Emitida cuando el desplazamiento comienza al arrastrar el área desplazable con un evento táctil. Esta señal no se emite cuando se desplaza arrastrando la barra de desplazamiento, desplazando con la rueda del ratón o desplazando con eventos de teclado/gamepad.

Nota: Esta señal solo se emite en Android o iOS, o en plataformas de escritorio/web cuando ProjectSettings.input_devices/pointing/emulate_touch_from_mouse está habilitado.


Enumeraciones

enum ScrollMode: 🔗

ScrollMode SCROLL_MODE_DISABLED = 0

Desplazamiento desactivado, la barra de desplazamiento estará invisible.

ScrollMode SCROLL_MODE_AUTO = 1

Desplazamiento activado, la barra de desplazamiento estará visible solo si es necesario, es decir, el contenido del contenedor es más grande que el contenedor.

ScrollMode SCROLL_MODE_SHOW_ALWAYS = 2

Desplazamiento activado, la barra de desplazamiento siempre estará visible.

ScrollMode SCROLL_MODE_SHOW_NEVER = 3

Desplazamiento activado, la barra de desplazamiento estará oculta.

ScrollMode SCROLL_MODE_RESERVE = 4

Combina SCROLL_MODE_AUTO y SCROLL_MODE_SHOW_ALWAYS. La barra de desplazamiento solo es visible si es necesario, pero el tamaño del contenido se ajusta como si siempre estuviera visible. Es útil para asegurar que el tamaño del contenido se mantenga igual independientemente de si la barra de desplazamiento está visible.


Descripciones de Propiedades

bool draw_focus_border = false 🔗

  • void set_draw_focus_border(value: bool)

  • bool get_draw_focus_border()

Si es true, se dibuja focus cuando el ScrollContainer o uno de sus nodos descendientes está enfocado.


bool follow_focus = false 🔗

  • void set_follow_focus(value: bool)

  • bool is_following_focus()

Si es true, el ScrollContainer se desplazará automáticamente hacia los hijos enfocados (incluidos los hijos indirectos) para asegurarse de que sean completamente visibles.


ScrollMode horizontal_scroll_mode = 1 🔗

Controla si la barra de desplazamiento horizontal puede ser usada y cuándo debería ser visible.


int scroll_deadzone = 0 🔗

  • void set_deadzone(value: int)

  • int get_deadzone()

Zona muerta para el desplazamiento táctil. Una zona muerta más baja hace que el desplazamiento sea más sensible.


int scroll_horizontal = 0 🔗

  • void set_h_scroll(value: int)

  • int get_h_scroll()

El valor de desplazamiento horizontal actual.

Nota: Si estás estableciendo este valor en la función Node._ready() o antes, necesita ser envuelto con Object.set_deferred(), ya que Range.max_value de la barra de desplazamiento aún no está inicializado.

func _ready():
    set_deferred("scroll_horizontal", 600)

float scroll_horizontal_custom_step = -1.0 🔗

  • void set_horizontal_custom_step(value: float)

  • float get_horizontal_custom_step()

Reemplaza el ScrollBar.custom_step utilizado al hacer clic en los botones de incremento y decremento horizontal de la barra de desplazamiento interna o al usar las teclas de flecha cuando la ScrollBar está enfocada.


int scroll_vertical = 0 🔗

  • void set_v_scroll(value: int)

  • int get_v_scroll()

El valor de desplazamiento vertical actual.

Nota: Establecerlo antes de tiempo necesita ser diferido, al igual que en scroll_horizontal.

func _ready():
    set_deferred("scroll_vertical", 600)

float scroll_vertical_custom_step = -1.0 🔗

  • void set_vertical_custom_step(value: float)

  • float get_vertical_custom_step()

Reemplaza el ScrollBar.custom_step utilizado al hacer clic en los botones de incremento y decremento verticales de la barra de desplazamiento interna o al usar las teclas de flecha cuando la ScrollBar está enfocada.


ScrollMode vertical_scroll_mode = 1 🔗

Controla si la barra de desplazamiento vertical puede ser usada y cuándo debería ser visible.


Descripciones de Métodos

void ensure_control_visible(control: Control) 🔗

Asegura que el control dado sea visible (debe ser un hijo directo o indirecto del ScrollContainer). Utilizado por follow_focus.

Nota: Esto no funcionará en un nodo que acaba de ser añadido durante el mismo frame. Si quieres desplazarte a un hijo recién añadido, debes esperar hasta el siguiente frame usando SceneTree.process_frame:

add_child(child_node)
await get_tree().process_frame
ensure_control_visible(child_node)

HScrollBar get_h_scroll_bar() 🔗

Devuelve la barra de desplazamiento horizontal HScrollBar de este ScrollContainer.

Advertencia: Este es un nodo interno requerido, eliminarlo y liberarlo puede causar un fallo. Si deseas deshabilitar u ocultar una barra de desplazamiento, puedes usar horizontal_scroll_mode.


VScrollBar get_v_scroll_bar() 🔗

Devuelve la barra de desplazamiento vertical VScrollBar de este ScrollContainer.

Advertencia: Este es un nodo interno requerido, eliminarlo y liberarlo puede causar un fallo. Si deseas deshabilitar u ocultar una barra de desplazamiento, puedes usar vertical_scroll_mode.


Descripciones de las propiedades del tema

StyleBox focus 🔗

El StyleBox del borde de enfoque del ScrollContainer. Solo se usa si draw_focus_border es true.


StyleBox panel 🔗

El fondo StyleBox del ScrollContainer.