如何在ListView项之间设置自定义分隔符

时间:2014-11-20 08:32:40

标签: qml qt5 qtquick2

是否可以使用自定义委托作为ListView的每两个连续项之间的分隔符,就像headerfooter属性一样?

3 个答案:

答案 0 :(得分:3)

ListView可以划分为sections,即群组。该文档提供了一个很好的示例here

基本上,您定义Component,就像对HeaderFooter一样,并将其设置在section.delegate子属性中。在代码中:

ListView {         id:查看         [...]

    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
}

答案 1 :(得分:1)

我刚补充说:

Text {
    text: "____________________________________________"
    color: "black"
}

到我的项目结束。

答案 2 :(得分:0)

将您的项目放入带有上述矩形的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))
        }
    }
}

这样,分隔符将仅在itens之间显示,而不在最后一项上显示。 您可以继续使用为其创建的部分。