【问题标题】:Changing Nativescript Listview `onItemTap` background color?更改 Nativescript Listview `onItemTap` 背景颜色?
【发布时间】:2018-05-14 12:52:35
【问题描述】:

我有一个ListView

这是标记:

<ListView   [items]="items " class="list-group" (itemTap)="onItemTap($event)"  >
    <ng-template  let-item="item" let-i="index" let-odd="odd" let-even="even"  >
        <Label [text]='item._name' class="row list-group-item" [id]="'lbl' + i"></Label>
    </ng-template>
</ListView>

但是 - 当我单击一个项目时 - background-color 没有任何反应。 (我希望有一些被窃听的迹象)。

我已经有了这段代码(当我点击时它会执行)

  onItemTap($event)
    {
        var lbl = <Label>$event.view.getViewById("lbl" + $event.index);
        console.log(lbl.text);
    }

顺便说一句

如果是button 而不是label - 我可以做到:

.row:highlighted{
    background-color:#00A3FF;
}

但正如你所见 - 我使用的是 Label

问题
点击时如何突出显示标签的背景颜色?

【问题讨论】:

    标签: android css angular listview nativescript


    【解决方案1】:

    如果你愿意,你可以对触摸事件做一些事情

    <Label #label (touch)="highlight(label,$event)" text="My Label"></Label>
    

    然后在你的组件类中

    highlight(label:Label, $event:TouchGestureEventData){
           if ($event.action === TouchAction.down) {
                label.backgroundColor = // on touch background color
            }
            if ($event.action === TouchAction.cancel || $event.action === TouchAction.up) {
                label.backgroundColor = // on back to original color
            }
    }
    

    【讨论】:

    • oops 复制和粘贴失败,这是我在其他地方使用的指令中的代码。我已经删除了它只是无视。
    • 它确实有效 - 但现在 - 主要事件没有被调用:(ListView的itemTap):i.stack.imgur.com/5irez.png
    • 嗯。您可以在突出显示功能中包含该事件吗?由于主列表视图和高亮显示,那里可能会发生冲突
    • 说实话 - 我更喜欢通过 itemTap 将 eventListener 添加到列表视图,而不是将 (touch) 附加到列表视图中的每个元素......我想说的是我想使用您在 itemTap 事件中提供的功能(这是附加到 ListView 的 one 事件)。 但是 itemTap 上的$event 不包括$event.action 就像在touch 事件中一样......我可以解决这个问题吗?
    • 或者,您可以将点击事件移动到标签(tap)="onItemTap($event)",而不是将其包含在触摸事件中,不确定您可能需要更改我认为应该在它的事件中包含该操作的操作。跨度>
    猜你喜欢
    • 2012-03-10
    • 2016-01-11
    • 1970-01-01
    • 2020-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多