【问题标题】:Switch between Carousel and Container在轮播和容器之间切换
【发布时间】:2014-04-03 11:25:53
【问题描述】:

我正在创建一个可以双向工作的视图:根据您单击工具栏上的哪个按钮,您可以在轮播中或在 hbox 容器中获得两个列表(每个列表占宽度的 50%)。

如何在 Container 和 Carousel 之间切换视图?

我尝试将 xtype 从轮播更改为容器

Ext.getCmp("myView").xtype='container';

我已经尝试设置扩展

Ext.getCmp("myView").extend='Ext.Container';

当然,我尝试将两者结合起来。

【问题讨论】:

  • 准备您的两个列表作为对象项目,并使用 Ext.create('Ext.Container') 或 Ext.create('Ext.Carousel') 动态创建视图并将您的项目分配给该视图跨度>

标签: sencha-touch sencha-touch-2 sencha-touch-2.3


【解决方案1】:

默认和文档化的方式。你不能这样做。

我想我已经尝试过了,并且发现布局不能在运行时动态更改。

话虽如此,这不是不可能的 :D。 至于现在我为你准备了 2 个解决方案。

1.相当正统的方式 使用包含 2 个项目的选项卡面板。 1 个带有轮播布局的项目 1 个带有 hbox 布局的项目 这种方法将使您有 4 个列表需要处理。

2.动态方式 在您当前的视图中,将布局设置为“适合”,并将 titleBar/toolbar 作为子组件并确保它已停靠。 在该标题栏/工具栏内放置 2 个按钮作为更改视图的一种方式 现在在控制器类上,您需要一个 init 函数,该函数将添加一个具有所需默认布局和列表的“容器”到视图中。

当用户按下另一个按钮时,您将从视图中删除所有项目(停靠的项目不会受到影响)并添加另一个具有所需布局和列表的容器。

PS:目前我不知道如何在更改视图时同步列表的滚动条使用 dom 选择器来获取列表作为元素,然后访问滚动条)

【讨论】:

    【解决方案2】:

    您可以通过视图上的卡片布局来实现这一点。一张卡片是带有 hbox 布局的容器,第二张卡片是带有列表的轮播。根据单击的工具栏按钮,您可以在视图上切换卡片。

    http://docs.sencha.com/touch/2.3.1/#!/api/Ext.layout.Card

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-29
      相关资源
      最近更新 更多