Können Sie sicherstellen, dass Sie die listViewItemTap
in Ihrem Code exportiert haben. Ich habe folgendes versucht, und es scheint gut zu funktionieren:
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!");
}
auch eine Sache suchen:
- Wenn Sie sind nicht mit Bindung für das
itemTap
Ereignis (wie in der XML Sie p osted) - Sie sollten den Event-Handler im Code-Behind der Seite angeben.
- Wenn Sie sind mit Bindung (
itemTap="{{ listViewItemTap }}"
) sollten Sie den Ereignishandler in Ihrem bindingContext-Objekt bereitstellen.
Hallo - bitte geben Sie Ihren Code-hinter, wo Sie die itemTap-Funktion exportiert haben. Im Issue-System habe ich ein einfaches Beispiel für diese Funktion gepostet. https://github.com/NativeScript/NativeScript/issues/1995 –