我在 QML 文件中有一个 TabbedPane 布局,它被添加到另一个 QML 文件中:
attachedObjects: [
ComponentDefinition {
id: attachmentViewer
source: "EncryptedAttachmentViewer.qml"
}
]
这是文件内容:
import bb.cascades 1.0
TabbedPane {
showTabsOnActionBar: true
Tab {
title: "Text"
Page {
id:page1
Label {
text: _messages.messageViewer.attachment.text
multiline: true
}
}
}
Tab {
title: "HTML"
Page {
id: page2
ListView {
dataModel: _messages.messageViewer.attachment.htmllist
listItemComponents: [
ListItemComponent {
type: "item"
Container {
WebView {
html: ListItemData.html
}
}
}
]
}
}
}
Tab {
title: "Attachments"
Page {
id: page3
ListView {
dataModel: _messages.messageViewer.attachment.attachmentlist
listItemComponents: [
ListItemComponent {
type: "item"
Container {
id: itemRoot
Label {
text: ListItemData.name
}
}
}
]
onTriggered: {
_messages.messageViewer.invoke(dataModel.data(indexPath).tmpfilename)
}
}
}
}
}
在此之前是顺序布局,但由于 ScrollView 中的 Webview 错误(webview 几乎无限长),我想迁移到选项卡式布局。因此,唯一改变的是这个文件中的 QML,并且其中的所有元素在它们位于滚动视图(除了 webview 之外,如解释)之前都可以正常工作。
navigationPane.push(attachmentViewer.createObject());
当我在父 qml 文件中触发该文件的加载时,什么也没有发生。控制台中没有消息,但布局没有加载,而之前没有加载。TabbedPanes 有什么东西不允许它先被加载吗?