将数据动态加载到异步加载的 QML SwipeView 中会自动增加当前索引。
Loader{
asynchronous: true
anchors.fill: parent
sourceComponent: ColumnLayout{
//Any content here that can take some time to load
TabBar{
Layout.fillWidth: true
Repeater{
model: swRepeater.model
delegate: TabButton{
text: "Tab button "+index
}
}
}
SwipeView{
// anchors.fill: parent
Layout.fillWidth: true
Layout.fillHeight: true
currentIndex: 0
Repeater{
id: swRepeater
model: 5
delegate: Item{
Label{
anchors.centerIn: parent
text: qsTr("Test "+index)
}
}
}
onCurrentIndexChanged: {
console.debug("Index was modified to ",currentIndex)
}
}
}
}
加载数据结束时,当前项目和索引将为 4,而不是预期的 0。
还显示堆栈中的最后一项。
在 TabBar 项上也可以看到相同的行为,因此问题看起来来自 ListView 或 Container。
对此行为有什么建议吗?
我打印了当前索引的值,当Loader设置为异步时,当前索引在component.onCompleted中不断增加
我为模型初始化添加了一个计时器,问题就消失了。
Timer {
id: initTimer
running: false
interval: 100
repeat: false
onTriggered: {
accountTabBarRepeater.model = accountModel
accountRepeater.model = accountModel
}
}
Component.onCompleted: initTimer.start()