我想知道如何在 Pathview 中获取当前项目。
我们确实有 iscurrentItem 属性,但如果可能的话,我们如何使用它。通过我目前的实现,我得到了当前索引,但没有得到该索引处项目的值
如果您定义了preferredHighlightBegin和preferredHighlightEnd属性,您可以使用childAt函数来获取当前项目:
//example for vertical path
view.childAt(0, view.height * (preferredHighlightEnd + preferredHighlightBegin) / 2.0);
还有另一种方法,您可以迭代 PathView 的所有子项并找出哪个子项是当前项:
for(var i = 0; i < view.children.length; ++i)
{
if(view.children[i].PathView.isCurrentItem){
console.log(i + " is current item")
//view.children[i] is your current item here
}
}
在您的委托项目中,您可以设置一个更新路径自定义属性的连接:
PathView {
id: myPathView
// ...
property Item currentItem
delegate: pathDelegate
}
Component {
id: pathDelegate
Item {
id: delegateItem
// ...
Connection {
target: myPathView
onCurrentIndexChanged: {
if (myPathView.currentIndex === delegateItem.index) {
myPathView.currentItem = delegateItem;
}
}
}
}
}
效率不高,但确实有效。