我有一個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