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

时间:2013-05-08 10:45:05

标签: delegates qml

我目前面临一个奇怪的问题:我在列表视图中显示图像。作为一个很好的额外的事情,我想显示图像的exif数据也。 因此,我使用可翻转组件提出了以下结构:

Component{
   id: flippableDelegate{
   Flipable{
       property bool flipped: false
       front: Images{}
       back: ExifData{}
   }
 }
 ListView{
    delegate: flippableDelegate
 }

所以一切正常:我可以滚动浏览我的图片并通过点击它们来翻转它们。

但奇怪的是: 我翻转一个图像(例如索引= 3)并且当图像3仍然翻转时我轻弹到下一个图像。当点击返回图像3时,它不再翻转。 我想这很清楚,因为boolean flipped始终设置为false。 我喜欢这个功能!

但它不适用于第一张图像(索引0)。为什么呢?

1 个答案:

答案 0 :(得分:5)

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

第一个项目是currentIndex,并且在视图外部轻弹时不会被销毁,因为currentItem不得销毁。

如果您对使用currentIndex / currentItem不感兴趣,那么您只需设置currentIndex: -1即可按您的意愿使用。

作为警告:QtQuick 2.0可能无法在被忽略视图时销毁代理,因为它默认为非cacheBuffer