我在我的nativescript项目中使用list-view,我想处理list-view中特定对象的tap事件。 我们假设我们有这个xml:
<ListView items="{{ friends }}">
<ListView.itemTemplate>
<StackLayout>
<Label id="lbl_0" text="Say Hello!"/>
<Label id="lbl_1" text="Say Goodbye!"/>
</StackLayout>
</ListView.itemTemplate>
</ListView>
现在,如果我想要列表中的每个项目,要激活lbl_0上的点击处理程序和lbl_1的不同处理程序,我如何告诉我的列表视图执行此操作。 我试过这段代码:
listView.on(listViewModule.ListView.itemTapEvent, function (args: listViewModule.ItemEventData) {
var tappedItemIndex = args.index;
var tappedItemView = args.view;
// Do someting
});
但tappedItemView包含stacklayout对象而不是我点击的标签。 有谁知道如何设置这个?谢谢。
答案 0 :(得分:1)
您只需为每个标签单独设置tap event
,也可以应用于其他UI组件(例如按钮):
<ListView items="{{ friends }}">
<ListView.itemTemplate>
<StackLayout>
<Label id="lbl_0" text="Say Hello!" tap="sayHello"/>
<Label id="lbl_1" text="Say Goodbye!" tap="sayGoodbye"/>
</StackLayout>
</ListView.itemTemplate>
</ListView>
然后在js文件中:
function sayHello(args) {
// Your code
}
exports.sayHello = sayHello;
或ts:
export function sayHello(args) {
// Your code
}