有没有办法像header
和footer
属性一样,将自定义委托用作每两个连续ListView
项之间的分隔符?
ListView
可以分为sections
,也就是组。文档在这里提供了一个很好的例子。
基本上你定义一个Component
,就像你定义Header
和Footer
一样,并将其设置在section.delegate
子属性中。在代码中:
ListView {
id: view
[...]
section.property: "size" // <--- the splitting property name
section.criteria: ViewSection.FullString // <--- specify the way section is created (see the provided link)
section.delegate: sectionDelegate // <--- your delegate
}
将您的项目放在带有矩形的 ColumnLayout 中,如上所示:
ListView {
id: list
clip: true
model: ...
spacing: 3
Layout.fillHeight: true
Layout.fillWidth: true
delegate: ColumnLayout {
width: list.width
spacing: list.spacing
MyItemDelegate {
...
}
Rectangle {
color: "#999999"
Layout.preferredHeight: 1
Layout.fillWidth: true
visible: (index !== (list.count - 1))
}
}
}
这样,分隔符将仅在 iten 之间显示,而不显示在最后一项上。您可以继续使用为其创建它们的部分。
我刚刚添加了:
Text {
text: "____________________________________________"
color: "black"
}
到我的项目末尾。