首页 > 解决方案 > 更改 ListView 的当前索引背景颜色而不覆盖其他“状态”

问题描述

我的 Qt Quick Control 2 应用程序正在使用 Material Dark Theme。我想更改中选定项目的背景颜色ListView。我知道我可以在项目委托中做到这一点:

SwipeDelegate {
    id: delegate
    checkable: true
    spacing: 0
    width: parent.width

    background: Rectangle {
        color: index===currentIndex ? "red" : "transparent"
    }

但是随着上面的变化,我失去了默认填充等,而且 Material 在按住状态下的径向动画也丢失了。是否可以仅更改所选项目的颜色并保持项目其他状态的原始行为?看来我必须自己重新实现缺失的东西

标签: qtqmlqt-quickqtquickcontrols2

解决方案


也许您应该考虑实施突出显示。以下对我有用:

ListView {
    // ... Your stuff ...

    highlight: Rectangle { color: "lightsteelblue";  }
    focus: true
}

推荐阅读