2013-02-26 1 views
5

У меня есть объект listview, который считывает данные из веб-api через функцию javascript, которая добавляет данные в listmodel. Ниже приведен список listview и listmodel.Бесконечная прокрутка qt listView в QML

Я хочу реализовать тип бесконечного прокрутки, когда пользователь приблизится или достигнет последнего элемента списка.

Я не могу понять, как определить событие прокрутки и захватить относительную позицию прокрутки.

Спасибо за любую помощь.

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) 
      } 
     } 
    } 

ответ

6

В QML каждое свойство имеет соответствующий сигнал изменения. В вашем случае вы должны прослушать atYEnd свойство ListView:

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

Работает отлично, спасибо! – Smeegs