请问extension::ScrollView添加Widget子节点 ,同学们是怎么用的呢?

我用的3.2

extension::ScrollView 直接添加Button或Layout为子节点,会被他们吞掉触摸事件。

如果setGlobalZOrder(1);触摸事件倒是没吞掉,但是又失去了剪裁效果。

大家有没有什么好的解决方案呢?

你代码扔上来看下,为什么我记得我之前用都没这情况= =!

Layout * selectGame_Scroll = dynamic_cast<Layout*>(Helper::seekWidgetByName(_lobbyPanel,“selectGame_Scroll”));
Layout * game_dagun = dynamic_cast<Layout*>(Helper::seekWidgetByName(selectGame_Scroll,“game_dagun”));//这是一个Layout,里面有一个Button
Layout * game_none = dynamic_cast<Layout*>(Helper::seekWidgetByName(selectGame_Scroll,“game_none”));//这是一个Layout,里面有一个Button
game_dagun->removeFromParent();game_dagun->retain();
game_none->removeFromParent();game_none->retain();
myScrollView * m_selectGameScroll = myScrollView::create(Size(670,380),GAME_DEVIDE_LENGTH,nullptr);
selectGame_Scroll->addChild(m_selectGameScroll);
selectGame_Scroll->setGlobalZOrder(2);
selectGame_Scroll->setClippingEnabled(true);
m_selectGameScroll->setDelegate(this);
m_selectGameScroll->setGlobalZOrder(1);
m_selectGameScroll->setBounceable(true);
m_selectGameScroll->setDirection(extension::ScrollView::Direction::HORIZONTAL);

m_selectGameScroll->addChild(game_dagun);game_dagun->release();
m_selectGameScroll->addChild(game_none);game_none->release();

版主大人,我是这样做的,仍然没有剪裁效果

myScrollView里面就多了一个滑动完自动校准的功能,应该跟这个无关,可以排除。

能发个可运行的Demo来吗?或者你自己参考TestCpp里面UIScrollViewTest.cpp

不是ui::ScrollView。是extension::Scroll了View

好吧= =!:12::12:没注意到…
能提供个重现Demo吗?

没事,多谢版主的热心,我已经解决了

能问下是什么问题吗?

因为Button等控件是ScrollView的子节点,所以先响应触摸,而所有Widget都是向下屏蔽触摸的,所以导致点击在Widget上时ScrollView是不能响应滑动的。于是我重新封装了一个ScrollView,重写setTouchEnabble方法,添加触摸监听时指定优先级为-1,然后就达到要求了