我想在QML ScrollView的滾動結束時做些什麼。從文檔我假設flickableItem.onMovementEnded是我正在尋找,但我從來沒有得到這個信號。我對「運動」的理解錯了嗎? 我寫了這個最小的QML應用程序,並且我的console.log從未被調用過。我使用Qt 5.7或5.5.1在Mac上運行。如何訪問QML ScrollView的移動已結束?
import QtQuick 2.5
import QtQuick.Controls 1.4
ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
ScrollView {
id: scrollView
anchors.fill: parent
flickableItem.onMovementEnded: {
console.log("onMovementEnded")
}
Rectangle {
id: rect
width: 3000
height: 3000
}
}
}
我也嘗試通過「連接」連接它,但沒有運氣。
Connections {
target: scrollView.flickableItem
onMovementEnded: {
console.log("onMovementEnded")
}
}
感謝您輸入@ddriver。是的,它看起來像一個錯誤。我沒有按照你寫的那樣交換Flickable,而是試着從上到下快速滾動,反之亦然,只有當滾動視圖結束拍攝並彈回時,我才能看到'onMovementEnded'事件。 – philipp
是的,只有當它超調時,這意味着實際的滾動不會真正影響可滑動,直到滾動條到達結尾,並且只有超調到達它。正如我在使用QML方面的經驗中的許多事情一樣 - 您必須自己動手才能滿足您的需求。庫存QML組件在狹隘的預期用途之外幾乎沒有用處。 – dtech