PageView嵌套ScrowView如何设置可左右滑动?

这个问题问的人也不少,目前是在 ScrollView 组件脚本里专门对嵌套时的拖拽进行了处理,你可以重写下面这个方法,来允许子节点约束框上的滑动时间传递到父节点:

https://github.com/cocos-creator/engine/blob/v1.4/cocos2d/core/components/CCScrollView.js#L880-L908

后续我们会研究如何更好的支持这种嵌套需求。

2赞

用的按钮 切换页面 左右滑动一开始就禁止的 不激活 按钮是不能滑动的

用的按钮 切换页面 左右滑动一开始就禁止的 不激活 按钮是不能滑动的 所以才要这样

你好,我也遇到这个问题来,请问怎么重写这个事件呢?

如何实现啊!

那个游戏叫皇室战争。。。。
其实这个你自己实现在拖动事件就很容易搞定了

这个改写了,没用

将 scrollview 和 pageView 的 js 代码弄出来,自己封装成另外两个组件。再到这两个组件里面改。
可以实现。

主要原因就是scrollview的事件吞掉pageview的事件导致pageview监听不到事件,按照我给的附件,放入scrollview的view节点,。然后自己的scrollview拖到脚本中就可以了,具体逻辑可以看看代码,主要思路就是在scrollview监听到这些事件之前拦截后自己分发,根据需求,看是要分发给scrollview还是pageview。

comp_scroll_recognition.js.zip (1.6 KB)

5赞

谢谢,不过已经用这个简单的方法实现了:

cc.Class({
    extends: cc.PageView,
    //this is for nested scrollview
    _hasNestedViewGroup: function (event, captureListeners) {
        if(event.eventPhase !== cc.Event.CAPTURING_PHASE) return;

        var touch = event.touch;
        if(!touch) return;
        var deltaMove = cc.pSub(touch.getLocation(), touch.getStartLocation());
        if (deltaMove.x > 7 || deltaMove.x < -7)
            return false;
       // if (deltaMove.y > 7 || deltaMove.y < -7)
       //     return false;
        if(captureListeners) {
            //captureListeners are arranged from child to parent
            for(var i = 0; i < captureListeners.length; ++i){
                var item = captureListeners[i];

                if(this.node === item) {
                    if(event.target.getComponent(cc.ViewGroup)) {
                        return true;
                    }
                    return false;
                }

                if(item.getComponent(cc.ViewGroup)) {
                    return true;
                }
            }
        }

        return false;
    },
});
1赞

刚需啊。元老

解决ScrollView嵌套问题的demo,欢迎 fork 和 star
https://github.com/NRatel/CCC-NestableScrollView

1赞

怎么保证上下滑动时,左右不触发呢?

怎么保证上下滑动时,左右不触发呢?

分别设定父子ScrollView的方向。不同向。
pageView 的需求,最简单的办法就是基于两个ScrollView嵌套,附加自己另写的Page逻辑上去。
详见我上面发的地址

版本2.09这个方法可以用,且不用修改scrollview组件!真想多点几个赞!

用上面的方法可以翻页,但是上下滑动不正常,这个是怎么解决的呢??

https://gitee.com/lupin888/ccc-nestable-page-scroll-view-master
新增pageview嵌套scrollview

基于楼上大牛改的

请问一下,这个是直接绑定在pageview节点上吗,好像没生效呢