黑莓10全局标签栏应用程序(全局TabbedPane)

时间:2013-01-22 10:46:44

标签: qml blackberry-10

我正在创建一个具有全局标签栏的应用程序。“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()
                }
            }
        }
    }
}

1 个答案:

答案 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);

或者替换导航窗格的内容以保持标签的位置。