I loaded a Widget Blueprint in the BeginPlay event of the game mode and the UI is visible, but the buttons are not in the correct position until one frame has passed (shown in this video, I slowed the editor down to 3 fps to show):
This also happens in the simulation tab in the widget blueprint editor.
How do I fix this?
Sounds like a job for Force Layout Prepass. Add the node to the Construct event and target the container that holds the buttons.
See if that helps. Not 100% certain this is the solution but it’s worth trying.
Alternatively, you could wait for a frame and then show the widget.
Calling Force layout prepass in the construct event didn’t work; I needed to hide it initially and then show the widget after a frame. Seems like it is a bug as shown on the issues list here Unreal Engine Issues and Bug Tracker (UE-137604)
Are you using a scale box? I wonder if calling prepass for the entire widget before adding it to the viewport / container would fix this. Seems like it’s related, the bug you refer to mentions prepassing the layout improves the behaviour, albeit does not fix it.
I’m not using a scale box but i just tried and it doesn’t fix the problem (neither does calling prepass before adding it to the viewport).