Ich habe eine ListView-Tabelle. Ich möchte einige Filterschaltflächen hinzufügen, um Elemente dieser Tabelle basierend auf dem Elementtyp auszublenden/anzuzeigen. Der einfachste Weg ist die Sichtbarkeit der Eigenschaft des Item-Delegaten. Versteckte Elemente werden jedoch immer noch in listView.contentHeight oder listView.AvideArea.heightRatio gezählt. Dadurch ändern sich diese Werte beim Scrollen und beeinflussen die Höhe und Position der Bildlaufleiste, sie kollabiert, expandiert, springt in keiner Reihenfolge.QML ListView Filterelemente
Andere Problem ist, dass in der ListView, wenn ein Element ausgewählt ist, gibt es keine Möglichkeit, seinen Index kennen, zum Beispiel sieht es aus wie es an zweiter Stelle in der Tabelle ist, aber tatsächlich ist sein Index höher wegen der unsichtbare Gegenstände. Es könnte schön sein, wenn die unsichtbaren Gegenstände überhaupt nicht gezählt werden.
Bitte helfen Sie, dieses Problem zu lösen. Danke euch allen.
ListView{
id: listView
delegate: itemdelegate
}
Component{
id: itemdelegate
Item{
visible: model.type === filteredType ? true: false
}
}
Danke für die Hilfe. Ich hatte diese Lösung früher, aber Ihre Leistung nimmt mehr Zeit in Anspruch, um das Listenansichtsmodell (und damit die Tabellenelemente) zu leeren und aufzufüllen, wodurch die GUI einfriert. Ich habe einen Leistungstest versucht und meine erwähnte Art nahm viel kürzere Zeit in Anspruch. – Maluvel