Search Issue Tracker
Won't Fix
Votes
4
Found in
5.6.1p4
Issue ID
922566
Regression
No
Parent ContentSizeFitter doesn't update own size when child's ContentSizeFitter changes size
To reproduce:
1. Open user's project
2. In Hierarchy window, check Parent object height - it's 300
3. Find and disable Granchild object
4. Check Child 1 height (0) and Parent object height (still 300)
Expected: after disabling Granchild, Child 1 height is set to 0 and Parent height is set to 200
Actual: after disabling Granchild, Child 1 height is set to 0, Parent height is still 300
Reproduced in: 5.4.5p3, 5.5.4f1, 5.6.1p4, 5.6.2f1, 2017.1.0b10, 2017.2.0a4
Note: Content Size Filter warning states that child layout should not have Content Size Filter itself, however, it doesn't state that it wouldn't work
Note: from 2017.2 and before 5.6, bug shows different behavior - Parent object shows height of 200 no matter the state of Granchild
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- UI Overlay Image gets darker on each Camera when multiple Cameras are used
- Assertion failed on expression: 'scriptedImporterClass == SCRIPTING_NULL error when opening the standalone profiler window
- Disabled assets in Import Unity Package window aren't tracked but count as being selected by user
- [Windows] Crash on GetManagerFromContext when video is playing and creating High Definition 3D Projects after FMOD failed to switch back to normal output Error appeared
- GC Alloc produced when adding items to MultiColumnListView with Auto Assign Binding
rad1c
Oct 26, 2017 16:51
Fixed in 2017.2 (at least it works for me now as intended, without the LayoutRebuilder magic).
Karsten
Sep 13, 2017 07:14
The wanted behavior works only if you add a horizontal or a vertical layout group to the element you put the content size fitters on, but it would be really nice if it would work without them
Karsten
Sep 13, 2017 07:06
same here the contentsizefitter is somehow buggy
even with a very simple setup the parent does not expand to prefered size to fit the size of its child
just try it, it's mad , add a standard panel on this add a standard text put a contentsizefitter on the text and on the panel , set both fitters to prefered width, the text is set to fit the size of the text but the panel isnt fitting the size of the child with the text.
rad1c
Jul 17, 2017 22:04
Same problem here, less complex scenario (scroll view with prefab children having ContentSizeFitter).
It looks like Unity works the hierarchy the wrong way: up-to-down (parent to child, then child's child, etc), instead down-to-up (starting from the greatest grandchild)
WORKAROUND for those who struggle:
LayoutRebuilder.ForceRebuildLayoutImmediate([DEEPEST_CHILD_CONTAINER_GO].transform.GetComponentInParent<RectTransform>());
if this doesn't help on it's own, also call on parent's parent, right AFTER called on the child:
LayoutRebuilder.ForceRebuildLayoutImmediate([DEEPEST_CHILD_CONTAINER_GO].transform.parent.transform.GetComponentInParent<RectTransform>());
If your hierarchy is deeper, try to go 1-1 level higher by adding another ".parent.transform" and test, such as:
LayoutRebuilder.ForceRebuildLayoutImmediate([DEEPEST_CHILD_CONTAINER_GO].transform.parent.transform.parent.transform.GetComponentInParent<RectTransform>());
If you have a very deep hierarchy and there are ContentSizeFitters on every level, when it finally works, try to remove the 1st call, if still OK the 2nd, and so on until you get the least possible calls and your UI doesn't fall apart.
If too slow, you should find a way to get rid of ContentSizeFitter on child and grandchild GOs some way