我正在创建一个具有全局标签栏的应用程序。“Actionbar”应该有5个按钮,应该在每个屏幕上都可以看到。 如果没有“标签菜单”的帮助,有没有办法在“ActionBar”上放置5个标签? 我如何才能使这个标签窗格全局化?因为后者在应用程序中我使用navigationPane并且它取代了tabbedpane。我希望tabbedPane栏在所有屏幕上都可见
更新:::: 我试过床单,但标签消失了
import bb.cascades 1.0
TabbedPane {
showTabsOnActionBar: true
Tab {
Page {
titleBar: TitleBar {
title: "1"
}
attachedObjects: [
ComponentDefinition {
id: mySheet
source: "sheets.qml"
}
]
Button {
onClicked: {
var sheet = mySheet.createObject();
sheet.open();
}
text: "sheet"
}
}
}
Tab {
}
}
和我的sheets.qml文件
import bb.cascades 1.0
Sheet {
id: mySheet
content: Page {
Container {
Label {
text: "Hi then"
}
Button {
text: "close"
onClicked: {
onClicked: mySheet.close()
}
}
}
}
}
答案 0 :(得分:1)
"我怎么能把这个tabbedpane全球化?因为后者在app中我使用了navigationPane并且它取代了tabbedpane。"
如果我正确理解了您的问题,您希望始终使用tabbedpane而不是稍后将其替换为导航窗格。
您需要将tabbedpane作为qml中的主要对象。导航窗格应该是里面每个标签,所以基本上5个标签意味着你将有5个导航窗格。
当您需要推送页面时,请将其推送到相关选项卡的导航窗格。
更新: 表格允许您在tabbedpane的顶部按一个页面。这是一个例子:
创建一个qml文件,其根项目是一个工作表,例如
Sheet {
content: Page {
Container {
... insert content
}
}
}
然后在您的tabbedpane中,您将执行以下操作:
insideObjects
ComponentDefinition {
id: sheetDefinition
source: "mypage.qml"
}
在你的函数/ onclick / etc中:
var sheet = sheetDefinition.createObject;
sheet.open();
更新2:
要在tabbedpane中推送页面,请执行以下操作:
TabbedPane {
Tab {
NavigationPane {
id: tab1Nav
Page {
}
}
}
}
然后推送页面使用
tab1Nav.push(page);
或者替换导航窗格的内容以保持标签的位置。