Try taking a look at ForceLayoutPrepass(); and InvalidateLayoutAndVolatility() in the Widget.h.
I know Invalidate essentially flags it for redraw on next frame, and affects itself and children. I have not used the force prepass, but the description sounded promising for what you need.
For anyone finding this for the purpose of rebuilding the whole widget after a property change, if e.g. the underlying slate widget does not expose the parameters via a setter, but only with a Slate-Parameter in the constructor:
Use UPROPERTY([...], meta=(DesignerRebuild="True")) bool MyParameter;
in the declaration of the property and on every change of that property a rebuild of the widget is issued.
This doesn’t seem to work for me. I’m using InsertChildAt but the widgets seem to be keeping the order they were created in. I’ve done some debugging and the indexes are being changed, but this does not actually move the widget to that index.
Hello @Primus Halal,
My answer does actually not apply to the thread author’s question. I just posted this “non matching” answer here, since it solve a somewhat similar problem and everyone with that problem will find this thread eventually. So sorry, if I made some hope for somebody here…