Мой ListView всегда должен прокручивать свой активный в данный момент элемент до вершины между preferredHighlightBegin
и preferredHighlightEnd
. Это работает при нажатии на элемент. Однако, когда новый элемент добавляется в мою модель AbsctractListModel (и он не только добавляется в конец, но может быть добавлен в любом месте посередине), ListView показывает новый элемент, но он не прокручивается вверх. Это наиболее вероятно, потому что list.currentIndex = index
не установлен для новых добавленных элементов. Я хочу установить его, но пока не нашел способа сделать это. У кого-нибудь есть подсказка?
Я пробовал разные сигналы, такие как onCurrentItemChanged
, но пока не нашел подходящий, который также дает мне правильный индекс.
ListView {
id: list
anchors.fill: parent
clip: true
spacing: 11
focus: true
highlightMoveDuration: 400
snapMode: ListView.SnapToItem
preferredHighlightBegin: 0
preferredHighlightEnd: 100
highlightRangeMode: ListView.StrictlyEnforceRange
model: myAbstractListModel
delegate: ListItem {
height: 56
width: list.width
color: "red"
onListItemClicked: {
list.currentIndex = index
}
}
}
Ожидаемым результатом будет ListView, который прокручивает программно новый добавленный элемент моей AbstractListModel вверх (между preferredHighlightBegin
и preferredHighlightEnd
).