2016-12-09 1 views
0

私はnativescriptプロジェクトでリストビューを使用しています。リストビュー内の特定のオブジェクトでタップイベントを処理したいと思っています。私は私のリストに伝えることができるか、私はlbl_0のタップとlbl_1のための別のハンドラのハンドラを有効にするには、私のリストの各項目にしたい場合は、今すぐリストビュー内でイベントをタップ

<ListView items="{{ friends }}"> 
    <ListView.itemTemplate> 
     <StackLayout> 
      <Label id="lbl_0" text="Say Hello!"/> 
      <Label id="lbl_1" text="Say Goodbye!"/> 
     </StackLayout> 
     </ListView.itemTemplate> 
</ListView> 

: のは、我々はこのXMLを持っていると仮定しましょうこれを行うには - ビュー。 私はこのコードをしようと試みてきました:

listView.on(listViewModule.ListView.itemTapEvent, function (args: listViewModule.ItemEventData) { 
    var tappedItemIndex = args.index; 
    var tappedItemView = args.view; 
    // Do someting 
}); 

をしかしtappedItemViewは私がクリックされていないラベルれているstacklayoutオブジェクトが含まれています。 これを設定する方法は誰でも知っていますか?ありがとうございました。

答えて

1

あなただけの他のUIコンポーネント(例えばボタン)のために適用される、各ラベルごとに個別tap eventを設定する必要があります。

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

答えていただきありがとうございます、完璧に動作しています。最後の質問ですが、私はすべての関数を持つビューモデルファイルを持っています、どのようにビューモデル内のsayHello関数を呼び出すことができますか?ありがとうございます – Muni

+0

私の答えがあなたの問題を解決するなら、他人に知られるように答えた質問に印を付けてください。あなたの2番目の質問について、私はあなたのアイデアを理解していません、あなたはそれをより明確に説明するか、別の質問を作成してください。 Y –

+0

実際、リストビューのitemTapプロパティを使用すると、タップされたアイテムのインデックスがarsに取得されますが、このメソッドをラベルのタップで使用すると、アイテムのインデックスを取得する方法ラベルがタップされます。 – Muni

関連する問題