当“点击”列表项时在 Sencha Touch 中创建操作表

Posted

技术标签:

【中文标题】当“点击”列表项时在 Sencha Touch 中创建操作表【英文标题】:Creating Action Sheet in Sencha Touch when a list item is `tapped` 【发布时间】:2011-03-17 19:27:37 【问题描述】:

我有一个从 Sencha Touch 中的 JSON 数据生成的列表。本质上,该列表是从数据存储对象生成的,并充当联系人列表。我想知道如何添加功能,以便当用户点击其中一个列表项时,Sencha Touch 中会显示一个操作表,提供许多操作(例如“呼叫”、“发送消息”和“删除')。

这是我用来生成 ListvIew 的代码:

var listView = new Ext.List(
    store: friendStore,
    itemTpl: 'forename surname<br />phoneNumber',
    grouped: true,
    indexBar: true
);

我知道我可以使用on 参数,但这会将tap 事件附加到列表,而不是每个项目。显示的操作表将包含一些与tel:// 的链接,因此它也需要是动态的(因为要呼叫的电话号码也存储在数据存储中,键为phoneNumber

希望这是有道理的......

【问题讨论】:

【参考方案1】:

ListView 有一个你应该监听的 itemtap 事件。来自文档:

itemtap : ( Ext.DataView view, Number index, Ext.Element item, Ext.EventObject e )

要获取对应于被点击项目的记录,只需执行 view.getStore().getAt(index)。然后在您的事件处理程序中,只需根据记录中的数据重新创建 ActionSheet 并显示它。

另外,将侦听器附加到列表比附加到每个单独的项目更节省内存。

【讨论】:

【参考方案2】:

这不是一个很好的答案,但我会查看 DataView,它是 List 的父级。

它有一个名为 itemSelector 的属性,您可以使用它来指定列表条目的子部分。如果您使用 itemSelector,您还必须提供一个 tpl 属性。

【讨论】:

以上是关于当“点击”列表项时在 Sencha Touch 中创建操作表的主要内容,如果未能解决你的问题,请参考以下文章

Sencha Touch 2 列表新页面列表点击响应

从控制器将变量应用于视图中的按钮?Sencha Touch

Sencha Touch Nestedlist JSON 格式示例

Sencha Touch 2:如何在导航视图中显示列表?

如何在 VBOX 布局中显示 Sencha Touch 列表?

更新/更改列表组件 sencha touch 的存储