先说明一下我是如何用到,有哪些处理的
 用到这个组件基本上都是将列表进行排版操作的,竖着,或者横着,横着用HorizontalLayoutGroup
 还有一个和这个组件搭配的组件叫ContentSizeFitter
 先说我是怎么发现这个组件不好用的
//本地读取测试数据
 //StartCoroutine( FileTools.ReadData(“日常.json”, Callback));
 private void Callback(string obj)
 {
 JObject keys = JToken.Parse(obj) as JObject;
 JArray keys1 = keys.GetValue(“data”) as JArray;
 for (int i = 0; i < keys1.Count; i++)
 {
 JObject keys2= keys1[i] as JObject;
 GameObject game = Instantiate(gamel, parentl);
 game.SetActive(true);
 }
 RebuildContextUI();
 }
 public void RebuildContextUI()
 {
 //LayoutRebuilder.ForceRebuildLayoutImmediate(parentl1);
 }
 上述代码
 就是读取数据然后解析完了,生成数据显示的item,然后刷新一下layout,没啥不对劲的,但是就是需要手动刷新一下,就像这样
 private void Update()
 {
 if (Input.GetKeyDown(KeyCode.Space))
 {
 RebuildContextUI();
 }
 }
 然后我发现子物体下有一个这样的代码
 private void Update()
 {
 neirong.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, neirong.preferredHeight);
 image.rectTransform.sizeDelta = new Vector2(image.rectTransform.sizeDelta.x, neirong.rectTransform.rect.height + heightl);
 }
 这段代码是实时去计算text的长度然后有个竖线的图片根据text的长度去变长还是变短
 这段代码其实不用实时计算的,我就把他放到了start里,子物体生成后text的内容也填满了,根本不需要实时计算,我再想是不是这个原因导致的RebuildContextUI函数不起作用。
 嘿嘿还真不是,艹,麻爪了,封装的函数不起作用,会不会是ContentSizeFitter组件的问题?更改下模式,发现可行,显隐一下VerticalLayoutGroup组件,发现问题也能解决。当我把代码还原回去后,吧RebuildContextUI函数改变一下
 public void RebuildContextUI()
 {
 VerticalLayoutGroup verticalLayout= parentl1.GetComponent();
 verticalLayout.enabled = false;
 verticalLayout.enabled = true;
}
发现还是不行,我艹了,手动在场景里改可以,代码就不行,然后试试吧子物体的update的函数的内容放到start,就是之前说的计算text长度的,这回这个显隐就生效了。子物体显示出来后也能正常显示,子物体里的text长度也没有收到影响。如果还是不行,我真是麻了