我正在尝试设置一个可垂直滚动的视图,其中包含动态数量的预制面板(滚动浏览),每个预制面板包含动态填充的Text
个对象。
为实现这一目标,我创建了ScrollRect
,其内容是一个面板(让我们称之为contentPanel
),其中包含可变数量的预制件。这个面板有一个垂直Grid Layout Group
,以保持正确排列。
当我复制预制件时,我可以按预期滚动复制件。但是,当我以编程方式实例化新预制件并将父设置为contentPanel
时,所有可滚动内容都会消失。
以下是我实例化预制件的代码:
GameObject newAddedPanel = (GameObject) Instantiate(addedPanel);
newAddedPanel.transform.SetParent(contentPanel.transform);
if(newAddedPanel != null)
{
prefabScript script = newAddedPanel.GetComponent<prefabScript>();
if(script != null)
{
script.populatePanel("text1", "text2");
}
}
此处addedPanel
是对预制件的引用,prefabScript
是预制件附加到其上的脚本,populatePanel()
是脚本的方法之一。
根据我在this link阅读的内容,我不需要做任何进一步的事情来处理预制件&#39;职位
如果UI元素是布局组的子元素,它将自动定位并且可以跳过定位步骤
我必须采取另一个步骤让事情发挥作用吗?
谢谢!
更新
包含值为&#34; val11&#34;,&#34; vall12&#34;的文本框的面板是第一个预制件,下面是第二个预制件,等等。我在检查员中放了4个,以确认滚动是否有效。
在上面的输入字段中输入新值并且&#34;添加&#34;按下按钮,实例化新的预制件,并将其父级设置为与其他预制件相同的父级。但是,滚动时不会显示新的预制件。
希望能让事情更加清晰!