2011-11-11 35 views
2

我想以类似于拨打currentItem的方式访问QML ListView中的页眉和页脚项目以获取当前委托实例,但我无法弄清楚方法。我会很感激任何建议。QML ListView页眉和页脚项目?

+0

任何原因,你可以无法像访问'currentItem'属性那样访问['header'](http://doc.qt.nokia.com/4.7-snapshot/qml-listview.html#header-prop)和'footer'属性?你想达到什么目的? – sjwarner

+0

我想计算ListView内容的有效高度,包括动态页眉/页脚/代表。 – Prismatic

回答

3

您应该指定页眉/页脚项目的一些外部参考如下:

Window { 
    property Item listHeaderItem: null 
    Component { 
    id: listHeaderComponent 
    Item { 
     id: headerItem 
     width: listView.width; height: 0 
     Component.onCompleted: rootWindow.listHeaderItem = headerItem 
    } 
    } 
    ListView { 
    header: listHeaderComponent 
    }} 
+0

这似乎是一个有效的方法,如果有点不方便,因为每次使用ListView组件时都需要分配项目。我添加了我的答案以显示我最终使用的方法。 – Prismatic

0

您可以将功能像中访问页眉/页脚的对象......

 if(header) 
     { 
      var headerItem = header.createObject(null); 
      // do stuff with headerItem 
      headerItem.destroy(); 
     } 
     if(footer) 
     { 
      var footerItem = footer.createObject(null); 
      // do stuff with footerItem 
      footerItem.destroy(); 
     }