Angular 为RadListView中的某些行启用项目扫描
在nativescript+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
谢谢您可以,每次刷卡您都会点击
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上使用