vs中listview无法滚动

cocostudio创建了一个空listview,生成csb文件后加载到vs里边,项目需要是根据提供的数据自动加载listview中的item数量,目前这功能已经实现,问题是运行之后发现listview无法滚动,这是什么一个情况?
有没有人遇见类似的情况?我参考了test,依然无法发现问题出在哪里,无奈之下求有人指点一下,希望别被人说成伸手党,先谢谢了!
cocostuidio版本2.2.6
cocos2dx版本3.5

auto hero = CSLoader::createNode("Scene/MainScene/HeroLayer.csb");
addChild(hero);

ListView* listview = static_cast<ListView*>(SQLiteHelper::seekNodeByName(hero, "ListView"));
listview->sortAllChildren();
listview->setDirection(SCROLLVIEW_DIR_HORIZONTAL);
listview->setTouchEnabled(true);
slptr<SQLiteHelper> slp;
for (int i = 0; i < slp->GetLine("NewHero");i++){
    listview->pushBackCustomItem(createChild("NewHero", i));
}

Layout* HeroLayer::createChild(char* tbName, int id){
slptr slp;
auto dict = slp->FinById(tbName, id);
auto b = Vec2(100+200id,0);
Scale9Sprite
a;
auto item = MenuItemSprite::create(CreateSpriteN(a, dict.asString()), CreateSpriteS(a, dict.asString()), CC_CALLBACK_1(HeroLayer::skipLayer, this));
item->setTag(0);
auto menu = Menu::create(item, nullptr);
menu->setPosition(b);
Layout *custom_item = Layout::create();
custom_item->addChild(menu);
return custom_item;
}

好吧,果然被认为事伸手党。
问题找到了,我使用的是MenuItem,用menu装载,menu也就类似layout了,这时候我又使用一个layout去装载menu,所以造成错误,把layout去掉就好了。
贴出来帮主和我犯了类似小毛病的小伙伴分享一下经验吧,避免我这种乌龙!
接下来的问题是menu装载的menuitem在lisiview中可以无限拖动,没有边界,这尼玛,又得找原因了!

好吧,还是我,为了不发一张犯了严重错误的帖子误导大家,我决定还是来说明一下,原来问题在于我对layout和menu的理解有错误。
为了使用Plist的SpriteFramesWithFile精灵缓存图,我不得不放弃方便的Button而使用MenuItemSprite控件来作为我的按钮选项,这是大前提。
接着呢,Menu装载了create的MenuItemSprite之后,再在外部create一个layout加载这个menu,最后再用listview加载这个layout,这是顺序是肯定的,也是必须的。
这里涉及到一个各个控件布局的问题。MenuItemSprite装进menu的时候没什么好说的,注意MenuItemSprite的大小和图片对应就行,避免点击图片没有反应或者点击空白地方发生回调之类的情况,重点在于当用layout加载menu的时候。menu应该设置他的坐标位置以对应layout的布局。我看了半天底层发现如果不单独设置这个menu的坐标位置属性,猜用默认的会造成menu::create(item,nullptr);这个Create中,nullptr也被算作了一个目标,而item的数量并没有计算这个nullptr,所以最后造成item加载不全以及显示上的一些错误。
加上一句
menu->setPosition(Vec2(custom_item->getContentSize().width / 2.0f, custom_item->getContentSize().height / 2.0f));
就可以解决了。哎,果然程序员是个苦逼的事业,一句话的差异,折磨了那么久的时间。哎!!!
发出来与各位共勉吧!!!