Qml 滚动时隐藏列表视图的突出显示

Qml 滚动时隐藏列表视图的突出显示,qml,qt5,qtquick2,Qml,Qt5,Qtquick2,我正在为UI构建一个基于Qt Quick 2的Qt5应用程序。我在显示带有突出显示组件的ListView时遇到问题。当我滚动ListView时,高亮显示矩形在ListView外部可见,我无法找到避免它的方法 以下是最小QML文件的问题示例: import QtQuick 2.0 Rectangle { width: 360; height: 600 ListView { width: 350; height: 200 anchors.centerIn: paren

我正在为UI构建一个基于Qt Quick 2的Qt5应用程序。我在显示带有突出显示组件的ListView时遇到问题。当我滚动ListView时,高亮显示矩形在ListView外部可见,我无法找到避免它的方法

以下是最小QML文件的问题示例:

import QtQuick 2.0

Rectangle {
    width: 360; height: 600

  ListView {
    width: 350; height: 200
    anchors.centerIn: parent
    id: myList
    model: myModel
    highlight: highlightBar

    delegate: Item {
      width: 400; height: 20
      Text { text: name }

      MouseArea {
        id: mArea
        anchors.fill: parent
        onClicked: { myList.currentIndex = index; }
      }
    }
  }

  Component {
    id: highlightBar
    Rectangle {
      width: parent.width; height: 20
      color: "#FFFF88"
    }
  }

  ListModel {
      id: myModel
  }

  /* Fill the model with default values on startup */
  Component.onCompleted: {
      for(var i = 0; i < 100; i++) {
          myModel.append({ name: "Big Animal : " + i});
      }
  }
}
导入QtQuick 2.0
长方形{
宽度:360;高度:600
列表视图{
宽度:350;高度:200
anchors.centerIn:父对象
id:myList
型号:myModel
推荐理由:highlightBar
代表:议程项目{
宽度:400;高度:20
Text{Text:name}
鼠耳{
id:mArea
锚定。填充:父级
onClicked:{myList.currentIndex=index;}
}
}
}
组成部分{
id:highlightBar
长方形{
宽度:父级。宽度;高度:20
颜色:“FFFF88”
}
}
列表模型{
id:myModel
}
/*启动时用默认值填充模型*/
Component.onCompleted:{
对于(变量i=0;i<100;i++){
追加({name:“大动物:”+i});
}
}
}
是否有办法将组件“限制”到其父边框或在滚动时隐藏突出显示组件?

如以下报告所述:

注意:视图不自动启用剪辑。如果视图没有被另一个项目或屏幕剪裁,则需要设置clip:true才能很好地剪裁视图外的项目

因此,您所经历的是一种常见的行为,您应该1)通过其他
s(例如页眉
矩形
和页脚
矩形
,使用
z:infinite
,或简单地将
clip
属性设置为
true
,即

ListView{
   //...
   clip:true
   //...
}

剪辑会对应用程序的发展产生很大影响。因此,应该仔细评估它的使用情况,尤其是在视图场景之外。

现在看来很明显,但我花了一天时间尝试了尽可能多的属性,完全错过了这个属性,所以非常感谢!!@koopajah恰巧发生在我们之中:)只是一个建议:当您无法找到特定属性时,请尝试查看qml的
元素。您很可能会找到它。默认情况下,此属性应为
true
。因为这个,我浪费了2小时:(