Mal*_*vel 7 listview filter qml
我有一个ListView表.我想添加一些过滤器按钮来根据项目类型隐藏/显示该表的项目.最简单的方法是设置项委托的可见属性.但是,隐藏的项目仍计入listView.contentHeight或listView.visibleArea.heightRatio.因此,这些值在滚动时会发生变化,并影响滚动条的高度和位置,它会折叠,展开,跳转无序.
其他问题是在listView中,如果选择了一个项目,则无法知道其索引,例如它看起来像是在表中的第二位,但实际上由于不可见的项目,它的索引更高.如果根本不计算隐形物品,那可能会很好.
请帮忙解决这个问题.谢谢你们.
ListView{
id: listView
delegate: itemdelegate
}
Component{
id: itemdelegate
Item{
visible: model.type === filteredType ? true: false
}
}
Run Code Online (Sandbox Code Playgroud)
将项目动态附加到您的显示模型,例如
filterButton.onClicked:{
for(var i = 0; i < myListModel.count;i++)
{
if(myListModel.get(i).desiredProperty == "desiredValue")
myDisplayModel.append("prop1":"val1");
}
}
Run Code Online (Sandbox Code Playgroud)