qml listview中的第一个元素是否表现不同?

Don*_*nny 2 delegates qml

我目前面临一个奇怪的问题:我在列表视图中显示图像.作为一个很好的额外的事情,我想显示图像的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).为什么?

Mar*_*inJ 5

当弹出视图时,代理会被解除,因为它们在被轻弹回视图时被销毁并重新创建.

第一个项目是,currentIndex当它在视图外面被轻弹时currentItem不会被销毁,因为它不能被销毁.

如果你对使用currentIndex/currentItem不感兴趣,那么你可以简单地设置currentIndex: -1它,它应该按你的意愿工作.

作为一个警告:QtQuick 2.0可能不会在被忽略的情况下销毁代表,因为它cacheBuffer默认情况下为非零.