繁体   English   中英

Sencha Touch Carousel中的项目消失

[英]Items in Sencha Touch Carousel disappearing

我目前正在使用Sencha Touch构建应用程序。 我们的页面上有一个特定的轮播,其中包含多个项目。 单击其他面板上的按钮后,某些项目将添加到面板中或从中删除。

问题 :所有操作均按计划进行,但第一次单击再次单击该按钮 ,该功能停止工作,并且“轮播”显示变为空白,没有任何项目可见。

下面更改转盘的内容的按钮处理程序 itemsCarousel 该函数将itemPanels[ b.getBadgeText() ]itemsCarousel的项目中。 对于前四次点击,效果很好。 大约过一会儿,当我单击一个按钮时,“轮播”中的所有项目都消失了,甚至无法从控制台手动调用“轮播”,也无法添加或删除更多内容。

handler: function(b, e) {
    itemsCarousel.insert(1, itemPanels[ b.getBadgeText() ]);
    itemsCarousel.doLayout(); itemsCarousel.doComponentLayout();
    itemsCarousel.setActiveItem(1);
    itemsCarousel.remove(0, false);
}

我尝试过的事情:

  • 通过将项目插入插槽0 ,将0设置0活动,然后移除1更改顺序。
  • 在每行上放置javascript断点,查看轮播的空白处。 有时它出现在.insert()语句中,有时出现在.remove()
  • 从控制台手动完成所有这些操作。
  • .remove()调用(如上所示)和itemsCarousel的声明中调整autoDestroy参数。

如果您需要更多代码,我可以发布您认为相关的任何内容,但我不想用过多的代码来污染该线程。 谢谢你的帮助!

编辑:如果有人知道另一种方法来重现相同的功能,我也很乐意。 我正在考虑也许创建一个带有一个项目(一个转盘)的虚拟容器容器,并删除整个转盘并在单击按钮时重新添加一个全新的(带有新项目)一个?

好吧,我想出了如何使用其他方法重现功能的方法。

我构建了多个轮播,每个轮播都包含我想要的面板,然后有一个根面板,该面板简单地根据按钮的按下来设置活动的轮播。 例如,层次结构如下现在这个样子:

rootPanel
{
    carousel[0]
    {
        panel1
        panel2
    }
    carousel[1]
    {
        panel3
        panel4
    }
    ...
}

然后执行rootPanel.setActiveItem(x)来显示新的轮播。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM