3

因此,当我绘制我的ListView项目时,我会将它们分类。一个部分中的每个项目都有一行作为与下一个项目的分隔符。对于最后一项,我不想绘制此分隔符。如何确定当前正在绘制的项目是否是该部分中的最后一项(而不是ListView!)?

4

4 回答 4

2

每个委托项目都知道自己的索引,因此可以将其与ListView项目计数进行比较:

ListView {
    id: theListView
    model: ...
    delegate: Item {
        property bool isLast: index+1 < theListView.count ? false : true
        ...
    }
}
于 2018-06-15T00:52:27.413 回答
2

看起来不可能解决这个问题。但是,有可能以不同的方式实现相同的结果。而不是每个项目都有一条线将它与下一个项目隔开,而是有一条线将它与前一个项目隔开,而是在部分委托中也有它,并且根本不为项目绘制它index === 0

于 2016-03-11T22:43:08.927 回答
1

所以显然ListView附加了名为section, previousSection,的属性nextSection。有了这些,很容易找出下一个或上一个部分是否与当前部分相同。如果不相同,则表示它是该部分中的最后一项。

于 2016-03-14T22:00:08.653 回答
0

如果模型是静态的而不是动态的,则index == 0显示模型的第一个(实际上是最新的)项目。这意味着,如果您的 listView 不时使用新项目进行更新,则 index == 0 会在新列表项到达时绑定到不同的元素。

于 2019-11-01T13:37:13.883 回答