我正在使用sencha touch 2并且没有在sencha论坛中获得帮助,所以我希望你们能帮助我。
我想创建一个包含自定义项的列表。在这个自定义项目中,我希望有一个水平滚动列表视图,按钮作为项目。 我试着做它的component.DataItem,但它对我没用。 我还尝试在列表中添加自定义xtype als项目,但这不起作用。
我认为这是一项简单的任务,但是sencha touch对我来说是一个挑战。
所以请帮助我并告诉我,我怎样才能得到如图所示的视图。
答案 0 :(得分:1)
您将要使用Component DataView而不是标准列表。实质上,您需要首先定义一个Ext.dataview.component.DataItem,然后将其实现到DataView中。下面是DataView指南中引用的DataView中的按钮的简单示例:http://docs.sencha.com/touch/2-0/#!/guide/dataview
首先创建DataItem:
Ext.define('MyApp.view.DataItemButton', {
extend: 'Ext.dataview.component.DataItem',
requires: ['Ext.Button'],
xtype: 'dataitembutton',
config: {
nameButton: true,
dataMap: {
getNameButton: {
setText: 'name'
}
}
},
applyNameButton: function(config) {
return Ext.factory(config, Ext.Button, this.getNameButton());
},
updateNameButton: function(newNameButton, oldNameButton) {
if (oldNameButton) {
this.remove(oldNameButton);
}
if (newNameButton) {
this.add(newNameButton);
}
}
});
现在创建DataView:
Ext.create('Ext.DataView', {
fullscreen: true,
store: {
fields: ['name', 'age'],
data: [
{name: 'Jamie Avins', age: 100},
{name: 'Rob Dougan', age: 21},
{name: 'Tommy Maintz', age: 24},
{name: 'Jacky Nguyen', age: 24},
{name: 'Ed Spencer', age: 26}
]
},
useComponents: true,
defaultType: 'dataitembutton'
});
在您的情况下,您不想使用DataItem的按钮,而是要使用水平滚动列表。以下是我从这个答案中找到的一个例子:Horizontal scrolling list
var list = Ext.create('Ext.DataView',{
store: store,
itemTpl: new Ext.XTemplate('<img src="{icon}" />'),
inline: { wrap: false },
scrollable: {
direction: 'horizontal',
directionLock: true
}
});
请注意,您可能还必须使用第二个数据视图中的组件才能实现带图像的按钮