내 의견으로는 이것은 플러그인과 관련이 있습니다. 해결책으로 tap
이벤트를 Ripple
구성 요소로 설정하고 id
요소를 가져와 선택한 항목을 구별하는 데 도움이 될 수 있습니다. 나는 샘플 코드를 첨부하고있다.
메인에서 page.xml
<Page xmlns:RL="nativescript-ripple" xmlns="http://schemas.nativescript.org/tns.xsd" navigatingTo="navigatingTo">
<GridLayout>
<ListView items="{{ source }}" loaded="onLoaded">
<ListView.itemTemplate>
<RL:Ripple rippleColor="#d50000" id="{{index}}" tap="onTap2">
<StackLayout >
<Label text="{{title}}" textWrap="true" />
</StackLayout>
</RL:Ripple>
</ListView.itemTemplate>
</ListView>
</GridLayout>
</Page>
메인 page.ts
import { EventData } from 'data/observable';
import { Page } from 'ui/page';
import { HelloWorldModel } from './main-view-model';
import {StackLayout} from "ui/layouts/stack-layout"
// Event handler for Page "navigatingTo" event attached in main-page.xml
export function navigatingTo(args: EventData) {
// Get the event sender
let page = <Page>args.object;
var array=[];
for(var i=0;i<100; i++)
{
array.push({index:""+i,title:"title "+i});
}
page.bindingContext = {"source":array};
}
export function onTap2(args){
console.log("sample");
var layouts = args.object;
var id = layouts.get("id");
console.log(id);
}
당신이 사용할 수있는이 기능을 제공하는'nativescript-ripple' 플러그인. 플러그인의 repo에서 데모를 검토 할 수도 있습니다.이 데모는 앱에서 사용하는 방법을 보여줍니다 (https://github.com/bradmartin/nativescript-ripple/tree/master/demo). –
@NikolayTsonev 플러그인을 사용해 보았지만 listview의 itemTap 이벤트가 실행되지 않도록 차단했습니다. :( – Androidian