我有一个 ListView 分为两部分:收藏夹和常规项目,具有继承的模型QAbstractItemModel
。模型中的项目被排序,以便收藏在常规项目之前,当一个项目被标记为收藏时,它被移动到基础列表中的适当位置。
这是模型中执行移动的代码:
if (beginMoveRows(QModelIndex(), position, position, QModelIndex(), newPosition)) {
items.removeAt(position);
items.insert(newPosition + (newPosition < position ? 0 : -1), item);
endMoveRows();
}
但是,每次发生移动时,ListViewcontentY
都会更改-delegate.height
(在本例中为 -120px)。唯一可见的变化是滚动条偏移并最终退出屏幕。
发生了什么事,我该如何解决?
编辑:我发现这只发生在 ListView 完全滚动到底部时。