我整个周末一直试图研究这个,但找不到类似的例子。 我试图通过多个页面保持TabPane的一致性。截至目前,一旦超过1页,TabPane将不再存在。
例如:
TabbedPane {
id: root
showTabsOnActionBar: true
Tab {
title: qsTr("Search") + Retranslate.onLocaleOrLanguageChanged
Search {
}
}
}
// Search.qml
NavigationPane {
id: navigationPane
Page {
Button {
onClicked: {
navigationPush.push(pageSearchResults.createObject())
}
}
}
attachObjects: [
ComponentDefinition {
id: pageSearchResults
SearchResults {
}
}
]
}
所以基本上,当我们在Search
页面上时,我们有TabPane。
只要我按下Button
并导航到SearchResults
页面即可。 TabPane不见了......
// SearchResults.qml
// We're now 2 pages -IN- from the TabPane
Page {
Button {
onClicked: {
navigationPush.push(nextPage.createObject())
}
}
attachObjects: [
ComponentDefinition {
id: nextPage
NextPage {
}
}
]
}
一旦我们进入SearchResults
- 它就不会让我push
成为下一页。当我点击SearchResults上的按钮时,您可以看到navigationPush(nextPage.createObject())
。它给出了以下错误:
pushPage:mNavigationStack:(" 211")NavigationPane: NavigationPaneOnFwdTransitionDone:发送推送转换结束 页面:211客户端顶部:211
答案 0 :(得分:0)
您需要做的是将一个navigationPane添加到选项卡并将页面推到该选项卡上。
应打开一张纸,以便与标签分开 - 例如设置页面。表格还需要按钮或代码才能关闭它们。
您的代码中是否不清楚您是否使用了navigationPane,因此以下是它应该如何工作的示例:
TabbedPane {
id: root
showTabsOnActionBar: true
Tab {
title: qsTr("Search") + Retranslate.onLocaleOrLanguageChanged
NavigationPane {
id: navSearch
Page {
}
}
}
}
现在,当您想要导航到搜索中的下一页时,您会将其添加到navSearch navigationPane。这也会给你后退按钮。
通过此处阅读有关导航的文档非常有用:http://developer.blackberry.com/native/documentation/cascades/ui/navigation/index.html
它将解释有关导航如何工作以及标签窗格和工作表等不同元素如何相互作用的许多细节。