动态添加pageview子页面时,滑动出错

ccc 2.0.9版本
使用下面代码动态添加的子页面
var item = cc.instantiate(this.gameTemplate); this.gamePageView.addPage(item)
见视频,从game1滑动到game2时正常,从game2到game3时,跳回game1

bug.zip (135.7 KB)

1赞

提供下demo,帮你修改下,应该是使用方法不对了。

zyrs.zip (1.2 MB)

Main那个场景,进入后三个按钮随便点一个就行

模式设置不对,改成下图这个,如果还是使用free mode,需要在page添加到pageview前,把节点的位置设置好。

“需要在page添加到pageview前,把节点的位置设置好。”
这个是什么意思?怎么设置?不太明白…
意思是需要给每个page指定width和x,y吗?

想用动态添加page的方式做出如图所示的效果,有些类似示例中的PageView_Free_Horizontal,不过示例是静态的page
使用下面的代码循环添加page,结果滚动时只滚动了一半
list.forEach((game,idx)=>{
var item = cc.instantiate(this.gameTemplate);
item.position = new cc.v2(idx*item.width, 0);
this.gamePageView.addPage(item)
})

pageview的设置

我确认下~

抱歉,是代码处理上有问题,你修改下这个函数代码, 把函数里面的这段代码,移动到函数最前面

改了,但是没有效果。。。

应该是自定义引擎修改没生效,浏览器调试看看代码生效了没,或者添加下debugger标志,看看断点生效不。

找到2处,应该都该改了,然并卵:joy:

这不科学,你本地构建个调试版本给我。

web-desktop.zip (2.5 MB)

包来了。。。

修复代码 https://github.com/cocos-creator/engine/pull/4050

更新到最新版,位置依然不正确
工程文件bug.zip (1.3 MB)

谢谢反馈,你可以先自定义一下 engine 进行修复,下面是修复的 pr

https://github.com/cocos-creator/engine/pull/4556

位置还是不正确,修改了
D:\CocosCreator\resources\engine\bin\cocos2d-jsb-for-preview.js

D:\CocosCreator\resources\engine\cocos2d\core\components\CCPageView.js
两个文件,清空了D:\CocosCreator\resources\engine\bin.cache

js.zip (540.7 KB)

我看了一下应该是你 content 的坐标设置有问题,你把 content 的 x 轴设置为 0 试看看,还有 每个 page 的 anchor 必须是 0.5 才行

把content的x改成0之后好了。
然后提个建议,可以参考5楼的效果图,前面一个page可以露出一点。

有没有demo