如何在列表视图的项之间设置自定义分隔符



有没有办法像headerfooter属性一样,将自定义委托用作每两个连续ListView项之间的分隔符?

ListView可以分为sections,也就是组。文档在这里提供了一个很好的例子。

基本上你定义一个Component,就像你定义HeaderFooter一样,并将其设置在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"
}

到我的项目末尾。

相关内容

  • 没有找到相关文章

最新更新