cocos3.x scrollView组件问题求救

起因是我需要做一个功能,就是两个scrollView组件放在一起时,我想让它既能左右滑动也能上下滑动。
于是我通过查源码,发现会在某个函数阻止了触发。

scroll-view.ts

if (!event || event.eventPhase !== Event.CAPTURING_PHASE) {
return false;
}

  	if (captureListeners) {
  		// captureListeners are arranged from child to parent
  		for (const listener of captureListeners) {
  			const item = listener;

  			if (this.node === item) {
  				if (event.target && (event.target as Node).getComponent(ViewGroup)) {
  					return false;
  				}
  				return false;
  			}

  			if (item.getComponent(ViewGroup)) {
  				return false;
  			}
  		}
  	}
  	return false;

于是我它的返回全部改为false。功能是实现了,但有个问题就出现了,当两个组件一起滑动的时候,会报错,这个报错不影响功能,但会卡进程。
image
image
本来我是想继续改一下源码,发现这个函数引入了它这个脚本的外围属性。_cachedArray
一下子我就没办法了,改不了,求助一下大家有没有办法。

同样遇到这个问题

emmm~找到解决方案了,最后还是选择不改源码了,改源码各种爆红又难找难搞,我的解决方案是根据手指滑动,判断是否隐藏最外面的scrollView组件。

https://github.com/NRatel/CCC-NestableScrollView
这个方案不错

这样一看,反而我的代码简单多了 :rofl:
我就两句代码的事。

view.on(Input.EventType.TOUCH_MOVE,(even:EventTouch)=>{

    scrollView.enabled=Math.abs(even.touch.getDelta().y)==0;

    })
1赞

你把框或高像素=1

1赞

聪明BOY就是你了!