1

我正在创建一个具有全局选项卡栏的应用程序。“操作栏”应该有 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 {
    }
}

和我的 sheet.qml 文件

导入 bb.cascades 1.0

Sheet {
    id: mySheet
    content: Page {
        Container {
            Label {
                text: "Hi then"
            }
            Button {
                text: "close"
                onClicked: {
                    onClicked: mySheet.close()
                }
            }
        }
    }
}
4

1 回答 1

1

“我怎样才能使这个 tabbedpane 全球化?因为后者在应用程序中我使用 navigationPane 并且它取代了 tabbedpane。”

如果我正确理解您的问题,您希望始终有一个选项卡窗格,而不是稍后被导航窗格替换。

您需要做的是将您的选项卡窗格作为 qml 中的主要对象。导航窗格应该每个选项卡内,因此基本上 5 个选项卡意味着您将拥有 5 个导航窗格。

当您需要推送页面时,将其推送到相关选项卡的导航窗格。

更新:表格允许您将页面推送到选项卡窗格的顶部。这是一个例子:

创建一个 qml 文件,其根项目是一张表,例如

Sheet {
    content: Page {
        Container {
            ... insert content
        }
    }
}

然后在您的选项卡窗格中,您将执行以下操作:

在附加对象内

ComponentDefinition {
    id: sheetDefinition
    source: "mypage.qml"
} 

在您的函数/onclick/等中:

var sheet = sheetDefinition.createObject;
sheet.open();

更新 2:

要在选项卡窗格中推送页面,请执行类似于以下操作:

TabbedPane {
    Tab {
        NavigationPane {
            id: tab1Nav
            Page {

            }
        } 
    }
}

然后推送页面使用

tab1Nav.push(page);

或者替换导航窗格的内容以保留选项卡。

于 2013-01-22T10:58:41.707 回答