Вы можете убедиться, что у вас есть listViewItemTap
экспортированный в вашем коде. Я попробовал следующее и, кажется, работает OK:
XML:
<Page xmlns="http://schemas.nativescript.org/tns.xsd" navigatingTo="onNavigatingTo">
<ListView items="{{ menu }}" row="1" itemTap="listViewItemTap" >
<ListView.itemTemplate>
<GridLayout columns="auto, *">
<Image src="{{ imageURL }}" row="0" cssClass="icon"/>
<StackLayout col="1">
<Label text="{{ title }}" cssClass="name"/>
<Label text="{{ subtitle }}" cssClass="location"/>
</StackLayout>
</GridLayout>
</ListView.itemTemplate>
</ListView>
</Page>
JS:
exports.onNavigatingTo = function(args) {
var page = args.object;
page.bindingContext = {
menu:[
{ imageUrl: "", title: "title 1", subtitle: "subtitle 1"},
{ imageUrl: "", title: "title 2", subtitle: "subtitle 2"},
{ imageUrl: "", title: "title 3", subtitle: "subtitle 3"},
{ imageUrl: "", title: "title 4", subtitle: "subtitle 4"},
]
}
}
exports.listViewItemTap = function() {
console.log("Item tapped!");
}
Также одна вещь, чтобы искать:
- Если вы не являются, используя привязку для события
itemTap
(как в XML вы p osted) - вы должны предоставить обработчик события в коде для страницы.
- Если вы :, используя привязку (
itemTap="{{ listViewItemTap }}"
), вы должны предоставить обработчик события в вашем объекте bindingContext.
Здравствуйте, предоставьте код, в котором вы экспортировали функцию itemTap. В системе проблем я опубликовал простой пример этой функции. https://github.com/NativeScript/NativeScript/issues/1995 –