在使用滚动视图创建的水平列表视图中单击项目
Get item clicked in horizontal list view created with scroll view
我通过滚动视图创建了一个水平列表视图,但我不知道如何向它添加项目点击事件并跟踪哪个项目被点击
<ScrollView id="scrollView" showHorizontalScrollIndicator="true" height="20%" width="80%">
<View id="containerView" backgroundColor="#336699" height="300" width="1000" layout='horizontal' />
</ScrollView>
var columns = [];
for(var index=0;index<15;index++){
columns[index] = Ti.UI.createView({
width : 200,
height : 200,
backgroundColor : '#123456',
left : 20
});
$.containerView.add(columns[index]);
}
function doClick(item){
console.log(item);
};
您必须给每个 columns[index]
观看次数一个 clickListener。这应该在您的 for 循环中执行。
columns[index] = Ti.UI.createView({
width : 200,
height : 200,
backgroundColor : '#123456',
left : 20
});
columns[index].addEventListener('click', function(e) {
// code here is run when the event is fired
// properties of the event object 'e' describe the event and object that received it
Ti.API.info('The '+e.type+' event happened');
});
$.containerView.add(columns[index]);
不需要额外的函数 doClick(Item),因为您可以内联定义它。
您可以向父视图添加监听器,而不是向每个视图添加点击监听器。并通过自定义 ID 访问另一个子视图。
例如,在您的情况下,请使用以下代码。
<ScrollView id="scrollView" showHorizontalScrollIndicator="true" height="20%" width="80%">
<View id="containerView" onClick="onContainerViewClicked" backgroundColor="#336699" height="300" width="1000" layout='horizontal' />
</ScrollView>
var columns = [];
for(var index=0;index<15;index++){
columns[index] = Ti.UI.createView({
width : 200,
height : 200,
backgroundColor : '#123456',
left : 20,
id :index
});
$.containerView.add(columns[index]);
}
$.containerView.width = 220 * 15;
function onContainerViewClicked(e){
alert(e.source.id);
alert(columns[e.source.id]);
}
我通过滚动视图创建了一个水平列表视图,但我不知道如何向它添加项目点击事件并跟踪哪个项目被点击
<ScrollView id="scrollView" showHorizontalScrollIndicator="true" height="20%" width="80%">
<View id="containerView" backgroundColor="#336699" height="300" width="1000" layout='horizontal' />
</ScrollView>
var columns = [];
for(var index=0;index<15;index++){
columns[index] = Ti.UI.createView({
width : 200,
height : 200,
backgroundColor : '#123456',
left : 20
});
$.containerView.add(columns[index]);
}
function doClick(item){
console.log(item);
};
您必须给每个 columns[index]
观看次数一个 clickListener。这应该在您的 for 循环中执行。
columns[index] = Ti.UI.createView({
width : 200,
height : 200,
backgroundColor : '#123456',
left : 20
});
columns[index].addEventListener('click', function(e) {
// code here is run when the event is fired
// properties of the event object 'e' describe the event and object that received it
Ti.API.info('The '+e.type+' event happened');
});
$.containerView.add(columns[index]);
不需要额外的函数 doClick(Item),因为您可以内联定义它。
您可以向父视图添加监听器,而不是向每个视图添加点击监听器。并通过自定义 ID 访问另一个子视图。 例如,在您的情况下,请使用以下代码。
<ScrollView id="scrollView" showHorizontalScrollIndicator="true" height="20%" width="80%">
<View id="containerView" onClick="onContainerViewClicked" backgroundColor="#336699" height="300" width="1000" layout='horizontal' />
</ScrollView>
var columns = [];
for(var index=0;index<15;index++){
columns[index] = Ti.UI.createView({
width : 200,
height : 200,
backgroundColor : '#123456',
left : 20,
id :index
});
$.containerView.add(columns[index]);
}
$.containerView.width = 220 * 15;
function onContainerViewClicked(e){
alert(e.source.id);
alert(columns[e.source.id]);
}