安卓Layer中不调用onTouchMoved

auto eventDispatch = Director::getInstance()->getEventDispatcher();

//触摸响应注册
m_pTouchListener = EventListenerTouchOneByOne::create();//创建单点触摸事件监听器
m_pTouchListener->onTouchBegan = CC_CALLBACK_2(CardsSelectionLayer::onTouchBegan, this);//触摸开始
m_pTouchListener->onTouchMoved = CC_CALLBACK_2(CardsSelectionLayer::onTouchMoved, this);//触摸移动
m_pTouchListener->onTouchEnded = CC_CALLBACK_2(CardsSelectionLayer::onTouchEnded, this);//触摸结束
m_pTouchListener->setSwallowTouches(true);//不向下触摸
eventDispatch->addEventListenerWithSceneGraphPriority(m_pTouchListener, this);//注册分发器

在iOS中可以正常工作,也就是说onTouchBeganonTouchMoved都能正常调用,但是在Android中只调用onTouchBegan,并且返回的也是true

请问可能会是什么原因?

我总是: return true; onTouchBegan().

  auto listener = cocos2d::EventListenerTouchOneByOne::create();
    listener->setSwallowTouches(true);
    
    listener->onTouchBegan = [&](cocos2d::Touch* touch, cocos2d::Event* event)
    {
        if (!_gameObject->Instance()->getGameIsPaused())
        {
            cocos2d::Vec2 p = touch->getLocation();
            cocos2d::Rect rect = this->getBoundingBox();
            
            if(rect.containsPoint(p))
            {
                CornSprite::touchEvent(touch);
                return true;
            }
        }
        
        return false;
    };
    
    listener->onTouchEnded = [=](cocos2d::Touch* touch, cocos2d::Event* event)
    {
    };
    

通过调试可以确认在onTouchBegan中是返回的true,并且在iOS中工作正常,但一旦在Android
中运行就会出现onTouchMoved不被调用的情况。所以觉得很是奇怪。