I’m creating a message log to catalog events as they happen. Game start, new day, any event etc. Think of this like in civ or something.
I want to make it so when a new child widget is added to the scroll box in my hud it will be added to the top and push the last one down. Unfortunately there is no simple way to do that in ue4. I am attempting to add the widget to an array and then add each child again, saving all the info in arrays along the way.
For some reason my for loop doesn’t seem to iterate at all though, it just instantly fires the complete. I just have the initial event hooked up to a timer on begin play that loops every 5 seconds so I can see a new game start message every 5 seconds.
This is one of my pet peeves, such a weird omission in UMG.
it will be added to the bottom.
I believe you mean to the ‘top’, seeing how you’re forced to use the array insertion workaround. Not sure why the loop is not iterating (no need to cast, btw) - maybe it is but the children do not appear?
Do consider the following alternative, there’s a hack that works surprisingly well:
add a Vertical Box to the Scroll Box and rotate it 180
when adding children, add them to that Vertical Box instead, and also rotate them 180
This way the Scroll Box behaves normally (since it is not rotated) and new elements pop in at the top. And you do not need to fiddle with an array or clear the container:
I feel baffled, because I seem to be getting the opposite behavior as everyone else. Adding a child appears to put the child at the bottom rather than the top for me, and I want the opposite behavior. Maybe I’m just misreading edits at this point.
This hack seems silly, but it indeed works for me. Thanks.