2016-04-20 8 views
0

In ListView, ItemTap Ereignis funktioniert nicht.NativeScript, in ListView, ItemTap-Ereignis funktioniert nicht

<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> 
+0

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 –

Antwort

2

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.
+0

Danke. Dieses Beispiel funktioniert. Auf etwas, an das ich mich erinnern möchte, habe ich pulltorefresh Plugin in unserem Projekt integriert, so dass ich überprüfen möchte, warum es nicht funktionierte ?. –

Verwandte Themen