带有swipecell的RadListView中未显示Nativescript删除按钮

问题描述

通过{N}教程,我想实现这一目标:

Expected

但是我无法显示删除按钮。

它在其他地方显示良好的图像没有问题,我也尝试放置一个Label,但结果相同。

Rad Listview组件:

<RadListView row="1" [items]="groceryList"
  swipeActions="true" (itemSwipeProgressstarted)="onSwipeCellStarted($event)">

    <ng-template let-item="item">
      <Label [text]="item.name" class="p-15"></Label>
    </ng-template>

    <GridLayout *tkListItemSwipeTemplate columns="*,auto">
      <StackLayout id="delete-view" col="1" (tap)="delete($event)" class="delete-view">
        <Image src="~/images/delete.png" ></Image>
      </StackLayout>
    </GridLayout>

  </RadListView>

CSS:

.delete-view {
    background-color: #CB1D00;
    padding: 20;
}
.delete-view Image {
    color: white;
    height: 25;
}

TS

onSwipeCellStarted(args: ListViewEventData) {
    var swipeLimits = args.data.swipeLimits;
    var swipeview = args.object;
    var rightItem = swipeview.getViewById<View>("delete-view");
    swipeLimits.right = rightItem.getMeasuredWidth();
    swipeLimits.left = 0;
    swipeLimits.threshold = rightItem.getMeasuredWidth() / 2;
  }

  delete(args: ListViewEventData) {
    let grocery = <Grocery>args.object.bindingContext;
    this.groceryService.delete(grocery.id)
      .subscribe(() => {
        let index = this.groceryList.indexOf(grocery);
        this.groceryList.splice(index,1);
      });
  }

删除功能效果很好,但是我在刷卡时得到的只是:

Result

在这里怎么了?

解决方法

我在本月初花了几天时间来解决RadListView的类似问题,尤其是在iOS上。这似乎违反了逻辑。我最终使用了负填充来到达可以看到标签和图标的位置。如果这样没有帮助,请尝试从CSS中移除height:。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...