Angular 为RadListView中的某些行启用项目扫描

Angular 为RadListView中的某些行启用项目扫描,angular,nativescript,swipe,radlistview,Angular,Nativescript,Swipe,Radlistview,在nativescript+angular中使用RadListView时,是否有办法仅对列表中的某些元素启用左/右行滑动 谢谢您可以,每次刷卡您都会点击itemSwipeProgressStarted事件,您必须返回swiplimits。如果要禁用特定项目上的滑动操作,请将左/右限制设置为零(0)。以下是基于项目状态的左视图示例 dataItems: ObservableArray<any>; ... onSwipeCellStarted(args: any) { let

在nativescript+angular中使用RadListView时,是否有办法仅对列表中的某些元素启用左/右行滑动


谢谢

您可以,每次刷卡您都会点击
itemSwipeProgressStarted
事件,您必须返回
swiplimits
。如果要禁用特定项目上的滑动操作,请将左/右限制设置为零(0)。

以下是基于项目状态的左视图示例

dataItems: ObservableArray<any>;

...

onSwipeCellStarted(args: any) {
    let status = this.dataItems.getItem(args.index).data.status;

    const swipeLimits = args.data.swipeLimits;
    const swipeView = args.object;
    const deleteView: View = swipeView.getViewById('delete-view');
    const editView: View = swipeView.getViewById('edit-view');
    const disabledView: View = swipeView.getViewById('disabled-view');
    
    if (status === 1) {
        swipeLimits.left = editView.getMeasuredWidth() + deleteView.getMeasuredWidth();
        swipeLimits.right = 0;
    } else {
        swipeLimits.left = 0;
        swipeLimits.right = 0;
        console.warn(' forbidden swipe...');
    }    
}
dataItems:observatarray;
...
onSwipeCellStarted(参数:任意){
让status=this.dataItems.getItem(args.index).data.status;
const swipeLimits=args.data.swipeLimits;
const swipeView=args.object;
const deleteView:View=swipeView.getViewById('delete-View');
const editView:View=swipeView.getViewById('edit-View');
const disabledView:View=swipeView.getViewById('disabled-View');
如果(状态===1){
swipeLimits.left=editView.getMeasuredWidth()+deleteView.getMeasuredWidth();
swipeLimits.right=0;
}否则{
swipeLimits.left=0;
swipeLimits.right=0;
控制台。警告(‘禁止刷卡…’);
}    
}
但我不确定这是否适用于iOS

也许您更应该在OnCellSwing方法中重新定义视图,下面是另一个示例,您可以根据isItemVisible参数替换swipe视图:

onCellSwiping(args: ListViewEventData) {
    const swipeLimits = args.data.swipeLimits;
    const swipeView = args['swipeView'];
    this.mainView = args['mainView'];
    this.leftItem = swipeView.getViewById('edit-view');
    this.disabledItem = swipeView.getViewById('disabled-view');

    let isVisible = this.mainView.bindingContext.isItemVisible;

    if (isVisible) {
        View.layoutChild(<View>this.disabledItem.parent, this.disabledItem, this.mainView.getMeasuredWidth(), 0, this.mainView.getMeasuredWidth(), 0);            
    } else {
        View.layoutChild(<View>this.leftItem.parent, this.leftItem, this.mainView.getMeasuredWidth(), 0, this.mainView.getMeasuredWidth(), 0);
    }        
}
onCellSwiping(args:ListViewEventData){
const swipeLimits=args.data.swipeLimits;
常量swipeView=args['swipeView'];
this.mainView=args['mainView'];
this.leftItem=swipeView.getViewById('edit-view');
this.disabledItem=swipeView.getViewById('disabled-view');
让isVisible=this.mainView.bindingContext.isItemVisible;
如果(可见){
View.layoutChild(this.disabledItem.parent,this.disabledItem,this.mainView.getMeasuredWidth(),0,this.mainView.getMeasuredWidth(),0);
}否则{
View.layoutChild(this.leftItem.parent,this.leftItem,this.mainView.getMeasuredWidth(),0,this.mainView.getMeasuredWidth(),0);
}        
}
我还没有在iOS上测试过,但这应该可以在Android和iOS上使用