我目前面临一个奇怪的问题:我在列表视图中显示图像.作为一个很好的额外的事情,我想显示图像的exif数据也.因此,我使用可翻转组件提出了以下结构:
Component{
id: flippableDelegate{
Flipable{
property bool flipped: false
front: Images{}
back: ExifData{}
}
}
ListView{
delegate: flippableDelegate
}
Run Code Online (Sandbox Code Playgroud)
所以一切正常:我可以滚动浏览我的图像并通过点击它们来翻转它们.
尽管如此,奇怪的是:我翻转了一个图像(例如索引= 3),然后在图像3仍然翻转时轻弹到下一个图像.当点击返回图像3时,它不再翻转.我想这很清楚,因为boolean flipped始终设置为false.我喜欢这个功能!
但它不适用于第一个图像(索引0).为什么?
当弹出视图时,代理会被解除,因为它们在被轻弹回视图时被销毁并重新创建.
第一个项目是,currentIndex当它在视图外面被轻弹时currentItem不会被销毁,因为它不能被销毁.
如果你对使用currentIndex/currentItem不感兴趣,那么你可以简单地设置currentIndex: -1它,它应该按你的意愿工作.
作为一个警告:QtQuick 2.0可能不会在被忽略的情况下销毁代表,因为它cacheBuffer默认情况下为非零.