在我们编写QML应用的时候,我们有时事先需要来考虑我们怎么使用一个好的框架来完成我们的应用。我们的应用有多少个页面,页面之间的导航到底是怎么样子的。这个对于我们一开始来设计我们的应用来说非常中要。在这篇文章中,我们来介绍如何在上层来设计我们的应用框架。
1)使用tab来创建一个平面的导航应用
我们可以使用我们的Ubuntu SDK来创建一个最基本的叫做TabApp的应用:
这样我们就生成了我们的一个最基本的应用。我们把应用的宽度和高度设为如下的值:
width: units.gu(50)
height: units.gu(75)
同时,我们也修改我们的Main.qml如下:
import QtQuick 2.0
import Ubuntu.Components 1.1
import Ubuntu.Components.ListItems 1.0 as ListItem
MainView {
// objectName for functional testing purposes (autopilot-qt5)
objectName: "mainView"
// Note! applicationName needs to match the "name" field of the click manifest
applicationName: "tabapp.ubuntu"
/*
This property enables the application to change orientation
when the device is rotated. The default is false.
*/
//automaticOrientation: true
// Removes the old toolbar and enables new features of the new header.
useDeprecatedToolbar: false
width: units.gu(50)
height: units.gu(75)
Tabs {
id: tabs
Tab1 {
objectName: "Tab1"
}
Tab2 {
objectName: "Tab2"
}
}
}
在这里我们定义了两个Tab页面,分别为Tab1及Tab2。它们的内容分别为:
import QtQuick 2.0
import Ubuntu.Components 1.1
Tab {
title: i18n.tr("Tab 1")
Action {
id: reloadAction
text: "Reload"
iconName: "reload"
onTriggered: {
console.log("reload is clicked")
}
}
page: Page {
Label {
anchors.centerIn: parent
text: i18n.tr("This is page one")
}
tools: ToolbarItems {
ToolbarButton {
action: reloadAction
}
}
}
}
import QtQuick 2.0
import Ubuntu.Components 1.1
Tab {
title: i18n.tr("Tab 2")
page: Page {
Label {
anchors.centerIn: parent
text: i18n.tr("This is page two")
}
}
}
这是一个最简单的Tab导航应用。我们在手机上运行: