creator pageview 监听page-turning获得的idx不对

me.pageview = me.node.finds(‘pageview’);
var content = me.pageview.finds(‘content’);

    content.removeAllChildren();

    var chapterConf = G.class.chapter.get();
    var keys = Object.keys(chapterConf);
    keys.sort(function (a,b) {
        return a*1 < b * 1 ? -1 : 1;
    });

    for (var i = 0; i < keys.length; i++) {
        var id = keys[i];

        (function (id) {
            G.class.sNode({
                name:'panel_chapter',
                callback: function (prefab) {
                    var node = cc.instantiate(prefab);
                    node.data = id;
                    node.name = 'chapter_' + id;
                    console.log('node======', node);
                    me.pageview.getComponent(cc.PageView).addPage(node);
                }
            });
        })(id);
    }
    // content.height = (1136 + content.getComponent(cc.Layout).spacingY) * keys.length;

    me.pageview.on('page-turning', function (event) {
        console.log('event======', event);
        var node = event.target || event.node;
        var idx = node.getComponent(cc.PageView).getCurrentPageIndex();
        console.log('idx======', idx);
        me.curPageIdx = idx;
        me.setBtns();
    });

idx只打印第一页和最后一页,求大神指点下

谢谢反馈,最好给一个 demo 吧,可能需要看看你怎么设置 pageview 的

demo.zip (783.7 KB)滑动界面

帮我看看哈,谢谢啦

你先根据官方范例 example-case 进行对比看看你跟它不同的地方在哪

我看了一下,把你的代码移除掉后面显示是正常的,可能是你的代码写错了

移除了哪些代码?

具体问题找到了:

第一应该把 content 的 layout 设置为

第二个把 prefab 的 widget 移除掉

你试看看这样的操作吧,因为你的 content 大小没有设置正确导致的

能说说原理么?

多谢啦!

因为 page view 的滑动会根据 content 的大小来进行计算的

pageview 有监听事件吗?比如我滑倒最后一页的时候,再往右滑动,有相应的监听事件吗?

我想滑动到最后了,再滑动回到第一

老哥,我把page全失活或者全激活输出索引都是正确的,但我只让当前page激活的话,发现只能获取到第一个和最后一个的索引了,也就是滑动时直接跳过了中间的page…