Бесконечная прокрутка qt listView в QML

У меня есть объект списка, который считывает данные из веб-API через функцию javascript, которая добавляет данные в модель списка. Я прикрепил список и модель списка ниже.

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

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

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

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

person Smeegs    schedule 26.02.2013    source источник


Ответы (1)


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

ListView {
  id: messageList
  // Stuff
  onAtYEndChanged: {
    if (messageList.atYEnd) {
      // Loading tail messages...
    }
  }
}
person Pavel Osipov    schedule 26.02.2013