我目前正在使用Sencha Touch构建应用程序。我们在包含多个项目的页面上有一个Carousel。单击其他面板上的按钮后,会添加某些项目并将其移除到面板中。
问题:所有问题都按计划进行首次点击,但点击再次点击相同的按钮,功能将停止工作, Carousel显示变为空白,没有任何项目可见。
以下是用于更改轮播itemsCarousel
内容的按钮处理程序。该函数将itemPanels[ b.getBadgeText() ]
添加到itemsCarousel
项。对于前四次左右的点击,这非常有效。在那之后,当我点击一个按钮时,Carousel中的所有项目都会消失,我无法添加或删除任何更多内容,甚至无法从控制台手动调用Carousel。
handler: function(b, e) {
itemsCarousel.insert(1, itemPanels[ b.getBadgeText() ]);
itemsCarousel.doLayout(); itemsCarousel.doComponentLayout();
itemsCarousel.setActiveItem(1);
itemsCarousel.remove(0, false);
}
我尝试的事情:
0
位插入项目来更改订单,设置0
有效,然后移除1
。.insert()
语句中出现,有时会出现在.remove()
。autoDestroy
电话中的.remove()
参数(如上所示)和itemsCarousel
声明。如果您需要更多代码,我可以发布您认为可能相关的任何内容,我不想用多余的代码污染此线程。谢谢你的帮助!
编辑:如果有人知道另一种方法来重现相同的功能,我也会对此持开放态度。我想也许创建一个带有一个项目,一个旋转木马的虚拟持有人容器,并删除整个旋转木马并在按钮点击时重新添加一个全新的(带有新项目)?
答案 0 :(得分:0)
好吧,我想出了如何使用不同的方法重现功能。
我制作了多个旋转木马,每个旋转木马都包含我想要的面板,然后有一个根面板,只需根据按钮按下设置活动旋转木马。例如,层次结构现在看起来像这样:
rootPanel
{
carousel[0]
{
panel1
panel2
}
carousel[1]
{
panel3
panel4
}
...
}
我执行rootPanel.setActiveItem(x)
以显示新的轮播。