Как я могу получить первый видимый элемент / индекс из ListView?

Как я могу получить первый Item/index это видно в ListView? Я заглянул внутрь документации, а также много искал в Интернете, но ничего не смог найти. Кто-нибудь знает как это сделать?

Спасибо!

3 ответа

Вы должны использовать что-то вроде этого:

ListView {
        id: contacts
        model: UsersModel

        onContentYChanged: {
            var CurrentIndexAtTop = indexAt(1, contentY)
            var CurrentPropFromModel = UsersModel.get(CurrentIndexAtTop).Name
        }
}

если indexAt return -1 означает, что не найден, проверьте это, если нужно! contentY - это свойство ListView, которое возвращает текущую позицию верхней Y-координаты окна ViewList на скользящей сетке ListView.

см. документацию для получения более подробной информации http://doc.qt.io/qt-5/qml-qtquick-listview.html

Я знаю, что уже поздно, но для тех, кто ищет помощи:

Вы можете использовать метод члена myView.indexAt(QPoint(0,0)) найти первый индекс.

Я также сделал фрагмент, чтобы найти все видимые индексы в представлении, если вам это тоже нужно: https://gist.github.com/iSplasher/8ebc42eaf9ea206b19bd

Исходя из ответа iSplasher, следующее работает, когда QListView имеет интервал и / или имеет прокрутку за пиксель:

sp = view.spacing()
first = max(view.indexAt(QPoint(sp, 0)), view.indexAt(QPoint(sp, sp * 2)))

Сохранить выбранный индекс при его изменении. Как только модель изменится и индекс станет -1, вы можете использовать positionViewAtIndex восстановить правильную позицию.

Здесь документация метода.

В противном случае вы можете сделать то же самое, полагаясь на add а также remove метод. Очевидно, это работает, насколько изменяется индекс выбранного элемента. Вы также можете получить индекс видимого элемента с помощью indexAt метод, но я никогда не использовал его раньше, хотя он выглядит простым в использовании.

Итак, у вас есть несколько методов для получения индекса видимого элемента, и вы можете сбросить представление с помощью вышеупомянутого метода.

Другие вопросы по тегам