当“点击”列表项时在 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 Nestedlist JSON 格式示例