Content Size Fitter刷新不及时
解决办法:UnityEngine.Canvas.ForceUpdateCanvases(); 强制刷新Canvas
对性能有影响
例如:在Text的应用中,当代码赋值Text后,text上的ContentSizeFitter不会立即刷新,而是要等到下一帧才刷新,则:
m_Text.text = "xxx";
UnityEngine.Canvas.ForceUpdateCanvases();
此方法也对其他的组件有效:
例如:
聊天界面里,发送消息或者收到消息后,赋值显示UI完毕后
调用scroll_rect_.verticalNormalizedPosition = 0 使滑动条滑至最底部
此时可能会出现未滑到最底部的问题
则可以在赋值完Scroll后,依次执行即可
..赋值ScrollList..
UnityEngine.Canvas.ForceUpdateCanvases();
scroll_rect_.verticalNormalizedPosition = 0;
Layout 刷新不及时
解决办法:LayoutRebuilder.ForceRebuildLayoutImmediate(挂载Layout的RectTransform)
推荐使用
在赋值完Layout下的物体后,调用上面方法强制刷新Layout
注:若子物体中嵌套很多的Layout,只需要针对最上层的几个关键Layout进行强制刷新即可
例如:ScrollRect的Content上的Layout 、 相对最顶层的Layout