我在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,如上所述)。
当我在父qml文件中使用navigationPane.push(attachmentViewer.createObject());
触发此文件的加载时,没有任何反应。控制台中没有消息,但布局没有加载,而之前没有加载。是否有关于TabbedPanes的东西不允许它先被加载?
答案 0 :(得分:2)
TabbedPane旨在成为您应用程序的第一页。不支持将其推送到NavigationPane。
您可以使用SegmentedControl。
顺便说一下,这个错误实际上发生在ListView中的WebView,而不是ScrollView中的Webview。如果它可以帮助您设计屏幕。