请问如何共用ScrollView ?

scrollview -> view -> container

我目前遇到的问题是,先调用func1,然后滑动scrollview到某个位置,然后调用func2,滑动列表不能正常显示,可能因为func1让scrollview的某些属性变得很大。所以想请问如何还原scrollview??不然就得重复创建好几个一模一样的scrollview在界面上,太不优雅。

func1() {
   container.removeAllChildren();
   循环50次:
   container.addChild(node1);
}
func2() {
   container.removeAllChildren();
   循环10次:
   container.addChild(node2);
}

不是很明白楼主这两段代码想要干嘛,能否再提供详细一点的说明?

比如,在一个界面上有一个scrollview控件,有N个按钮,第一个按钮是显示“等级奖励”的列表,有100条;第二个按钮显示“成就奖励”列表,有20条;第三个按钮显示“任务列表”,有50条…

我想做的是比如显示完了100条等级奖励列表以后,再点击成就奖励,然后就清空下方列表,再显示成就的list。

现在遇到的问题是,当把列表较长的列表拖到下方以后,再切换列表会导致显示不正常,不知道有没有办法实现这种需求。不然就只能拖N个重复的scrollview到编辑器里了,虽然也能解决问题,但实在不太优雅。

假设你不同列表里需要各自的prefab作为item,那你建立三个数组,分别用来存放每一类里的条目,只有当前选中的列表里的条目是激活的,其他两类的条目节点都是active = false。切换列表时遍历三个数组,切换他们每一个节点的激活状态就可以了。

如果你所有列表里用的prefab都是一样的,那就建立一个对象池,每次切换到一个列表时按照这个列表的数据请求相应数量的节点然后初始化。

非激活的节点不会在scroll view 排版中占位置,掌握这一点之后具体怎么做都可以。

南大,我用了你提供的第一种方法来实现,但是还是没有解决scrollview的边界判断问题。。。

我还是上图吧。
图1展示显示完长列表后再显示短列表后的位置错乱问题:

图2是在图1代码的基础上,我加了scrollToTop以后,初始位置对了,但是scrollview总高度不对,导致短列表还能继续往下拖,应该怎么破?:

请问你用的版本是多少?

能否用最新的 1.1beta 版本去测试一下?谢谢

我用的就是最新的beta5哦,子龙大大,今早刚下的

beta 7应该修改了?

beta7用了下,列表总高度对了,但还存在一个问题就是,把长列表拖到底以后再切换短列表,短列表显示不出来,因为他跑到列表上面去了,这时候要再往下拉一下他才会出来,只要出来以后的总高度什么的都一切正常。

这里面有什么可以改进的吗?

本来想偷个懒打字描述的,看来没有描述清楚,我还是上传个图吧: