单击鼠标突出显示 QML ListView 项目

highlight QML ListView Item on mouse click

我注意到列表视图默认会突出显示第一项 automatically/by 如何禁用它并仅突出显示我在鼠标单击时选择的项目?

Component {
id: highlight
Rectangle {
    width: 180; height: 40
    color: "lightsteelblue"; radius: 5
    y: list.currentItem.y
    Behavior on y {
        SpringAnimation {
            spring: 3
            damping: 0.2
        }
    }
  }
}

ListView {
   id: list
   width: 180; height: 200
   model: ContactModel {}
   delegate: Text {
    text: name 
        
      MouseArea{
          anchors.fill: parent
          onClicked: {
          list.currentIndex = index
         }
      }
    }

   highlight: highlight
   highlightFollowsCurrentItem: false
   focus: true
}

我已经完成了鼠标部分,但我仍然无法在添加项目时禁用突出显示。

默认情况下,currentIndex 设置为 0,这就是第一个项目总是开始突出显示的原因。您可以通过简单地将 currentIndex 初始化为 -1 来关闭它。

ListView {
    currentIndex: -1
    ...
}

好的,经过几个小时的搜索,我已经使用了 onCountChanged 信号 指示添加到列表中的项目然后将 ListView currentIndex 休息到 -1 所以代码将像这样

onCountChanged: {
   list.currentIndex = -1
}