我有一个ListView表。我想添加一些过滤器按钮来根据项目类型隐藏/显示此表的项目。最简单的方法是设置物品代理的可见属性。但是,隐藏的项目仍然计入listView.contentHeight或listView.visibleArea.heightRatio。因此,这些值在滚动时会发生变化,并影响滚动条的高度和位置,它会折叠,展开,不按顺序跳转。QML ListView过滤项目
其他问题是,在listView中,如果选中某个项目,则无法知道其索引,例如它看起来像在表格中的第二位,但实际上它的索引由于看不见的物品。如果无形物品根本不计算在内,这可能会很好。
请帮助如何解决这个问题。谢谢你们。
ListView{
id: listView
delegate: itemdelegate
}
Component{
id: itemdelegate
Item{
visible: model.type === filteredType ? true: false
}
}
感谢您的帮助。 我早些时候使用过这个解决方案,但性能方面,您的方式需要更多时间来清除和填充列表视图模型(以及表项),从而导致GUI冻结。我已经尝试过一次性能测试,我提到的方法花费了大量的时间。 – Maluvel 2014-09-23 18:58:54