轻扫 RadListView 时,Tap 事件被错误触发
Tap event is incorrectly fired when swiping a RadListView
我有一个显示项目列表的 RadListView。在每个项目模板中,我都有一个 (tap) 事件,该事件在点击项目时触发,以重定向到项目详细信息屏幕。但是,出于某种原因,每当我垂直滑动 RadListView 以遍历列表时,无论我从哪里开始滑动,它都会触发 (tap) 事件,并错误地重定向到项目详细信息屏幕,而不是仅仅向上或向下移动列表。
<RadListView
class="list transparent"
[class.visible]="!data.loading"
[visibility]="!data.loading ? 'visible' : 'collapse'"
[items]="data.items"
swipeActions="true"
(itemSwipeProgressStarted)="onSwipeCellStarted($event)">
<ng-template let-item="item">
<StackLayout class="item" orientation="horizontal" (tap)="view(item)">
<Image
[src]="item.photos?.length ? item.photos[0] : ''"
[visibility]="item.photos?.length ? 'visible' : 'collapse'">
</Image>
<StackLayout orientation="vertical">
<Label
class="title"
[text]="item.address">
</Label>
</StackLayout>
</StackLayout>
</ng-template>
<GridLayout *tkListItemSwipeTemplate columns="*, auto">
<StackLayout id="delete" col="1" (tap)="deleteRow($event)" class="delete">
<Label class="fas" [text]="IconsEnum.trashAlt"></Label>
</StackLayout>
</GridLayout>
</RadListView>
我尝试摆脱 (tap) 事件,而是在 RadListView 上使用以下内容:
multipleSelection="false" selectionBehavior="Press" (itemSelected)="itemSelected($event)"
这解决了滑动问题,但它引入了一个新问题,即每两次点击只会 select 一个项目,而不是每次滑动。
从 RadListView select 项目的正确方法是什么?
从@nativescript/ios 7.1.1 升级到 7.2.0 解决了这个错误。
我有一个显示项目列表的 RadListView。在每个项目模板中,我都有一个 (tap) 事件,该事件在点击项目时触发,以重定向到项目详细信息屏幕。但是,出于某种原因,每当我垂直滑动 RadListView 以遍历列表时,无论我从哪里开始滑动,它都会触发 (tap) 事件,并错误地重定向到项目详细信息屏幕,而不是仅仅向上或向下移动列表。
<RadListView
class="list transparent"
[class.visible]="!data.loading"
[visibility]="!data.loading ? 'visible' : 'collapse'"
[items]="data.items"
swipeActions="true"
(itemSwipeProgressStarted)="onSwipeCellStarted($event)">
<ng-template let-item="item">
<StackLayout class="item" orientation="horizontal" (tap)="view(item)">
<Image
[src]="item.photos?.length ? item.photos[0] : ''"
[visibility]="item.photos?.length ? 'visible' : 'collapse'">
</Image>
<StackLayout orientation="vertical">
<Label
class="title"
[text]="item.address">
</Label>
</StackLayout>
</StackLayout>
</ng-template>
<GridLayout *tkListItemSwipeTemplate columns="*, auto">
<StackLayout id="delete" col="1" (tap)="deleteRow($event)" class="delete">
<Label class="fas" [text]="IconsEnum.trashAlt"></Label>
</StackLayout>
</GridLayout>
</RadListView>
我尝试摆脱 (tap) 事件,而是在 RadListView 上使用以下内容:
multipleSelection="false" selectionBehavior="Press" (itemSelected)="itemSelected($event)"
这解决了滑动问题,但它引入了一个新问题,即每两次点击只会 select 一个项目,而不是每次滑动。
从 RadListView select 项目的正确方法是什么?
从@nativescript/ios 7.1.1 升级到 7.2.0 解决了这个错误。