2011-11-11 65 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(); 
     }