2013-02-26 17 views
5

Mam obiekt listview, który odczytuje dane z interfejsu API przez funkcję javascript, która dołącza dane do listmodelu. Załączam poniżej listview i listmodel.Nieskończone przewijanie listy QTView w QML

Chcę zaimplementować typ nieskończonego przewijania, gdy użytkownik zbliży się lub osiągnie ostatni element listy.

Nie mogę dowiedzieć się, jak wykryć zdarzenie przewijania i pobrać odpowiednią pozycję przewijania.

Dzięki za pomoc.

ListModel { 

     id: subModel 
     function getSub(idx){ 
      return (idx >=0 && idx < count) ? get(idx).display_name: ""; 
     } 
    } 

ListView { 
     clip: true 
     width: parent.width 
     height: parent.height - searchButton.height 
     model: subModel   
     on 
     delegate: ListingDelegate{ 
       text: title; 
       subText: subTitle; 
       icon: Qt.resolvedUrl(thumbnail) 
       __iconWidth: units.gu(5) 
       __iconHeight: units.gu(5) 
      } 
     } 
    } 

Odpowiedz

6

W QML każda właściwość ma odpowiedni sygnał zmiany. W twoim przypadku powinieneś posłuchać atYEnd właściwość ListView:

ListView { 
    id: messageList 
    // Stuff 
    onAtYEndChanged: { 
    if (messageList.atYEnd) { 
     // Loading tail messages... 
    } 
    } 
} 
+0

Działa doskonale, dzięki! – Smeegs

Powiązane problemy