我正在为体育博彩创建一个 QML 应用程序。
我有一个 StackView 显示各种竞争和市场。
以前,我使用一个视图来显示各种足球比赛,然后根据我得到的数据,我只是在这个视图中更改了模型。
我使用 StackView 向用户推送和弹出各种视图。
我现在想将这些视图动态分配到堆栈上:
StackView {
id: stack
delegate: StackViewDelegate {
function transitionFinished(properties) {
properties.exitItem.opacity = 1
properties.exitItem.visible = false
}
pushTransition: StackViewTransition {
PropertyAnimation {
target: enterItem
property: "opacity"
from: 0
to: 1
}
PropertyAnimation {
target: exitItem
property: "opacity"
from: 1
to: 0
}
}
}
}
还有一个尚未分配的组件:
Component {
id: groupComponent
GroupView {
onCompetitionClicked: {
root.showCompetition(competitionId);
}
}
}
Component {
id: competitionComponent
CompetitionView {
// Blabla
}
}
单击此组件时,showCompetition 会将新视图推送到堆栈中:
function showCompetition(competitionId) {
var view = competitionComponent.createObject();
view.loadCompetition(competitionId);
stack.push( {item:view, destroyOnPop:true});
}
所以现在发生了(截图)
在我将其更改为动态分配之前(请注意,我已经硬编码了一个用于调试的标题):
在我更改为动态分配后(注意字体看起来更厚?):
点击后左右一大片:
回到第一页(注意即使是硬编码的字符串也被混淆了):
显然字符串出了点问题,因为数字数据似乎相同,并且我收到的数据仍然正确,因为顶部的面包屑仍然显示正确的字符串。
到底是怎么回事?