Hi,
I’m building a custom timeline UI using Container COMPs and Panel UI (no TOP rendering).
The setup is roughly:
-
A fixed-width timeline “viewport” container (1280px wide)
-
Inside it, a wider container that represents the scrollable timeline content
-
The inner container’s
xandware controlled via scrollbar + zoom factor -
Timeline cues and effect blocks are children of that scrollable container
-
Zooming changes the inner container width, scrolling changes its
x
The problem:
Sometimes scrolling or zooming works correctly, but other times the entire UI layout jumps or shifts, as if the timeline container is affecting sibling containers or parent layout. It feels non-deterministic — the same interaction may work one moment and break the next.
I’ve already tried:
-
Setting
Parent Alignment = Ignore / Ignore and Ignore Margins -
Using fixed width/height for the viewport container
-
Ensuring only the inner “canvas” container moves (not the viewport)
-
Avoiding changing the viewport container’s
x -
Removing Fill / Fill Weight usage
-
Deferring
replicator.recreateall()by 1 frame
Despite this, the layout sometimes reflows when:
-
Zoom factor changes (inner width updates)
-
Scrollbar updates the inner container
x -
Replicators rebuild their children
It looks like a layout pass is still reacting to child size/position changes, even though the containers involved are set to Ignore.
Question:
Is there a known issue or rule with Panel UI / Container COMPs where layout recalculates based on child width even when Parent Alignment is Ignore?
Is there a recommended “viewport + canvas” pattern for Panel UI scrolling that avoids this entirely?
Any insight into how the layout engine decides when to reflow would be hugely appreciated.
Thanks!