In this step, we create an additional page that is displayed in a separate fullscreen column.
Additional page displayed in a separate fullscreen column
You can view and download all files at Flexible Column Layout App - Step 10.
<mvc:View
xmlns="sap.m"
xmlns:f="sap.f"
xmlns:mvc="sap.ui.core.mvc">
<f:DynamicPage toggleHeaderOnTitleClick="false">
<!-- DynamicPage Title -->
<f:title>
<f:DynamicPageTitle>
<f:heading>
<Title text="About supplier"/>
</f:heading>
</f:DynamicPageTitle>
</f:title>
</f:DynamicPage>
</mvc:View>
We create a simple additional page view.
...
"routes": [
{
"pattern": "page2",
"name": "page2",
"target": "page2",
"layout": "EndColumnFullScreen"
},
{
"pattern": ":layout:",
"name": "list",
"target": [
"list",
"detail"
]
},
{
"pattern": "detail/{product}/{layout}",
"name": "detail",
"target": [
"list",
"detail"
]
},
{
"pattern": "detail/{product}/detailDetail/{supplier}/{layout}",
"name": "detailDetail",
"target": [
"list",
"detail",
"detailDetail"
]
}
],
"targets": {
"list": {
"name": "List",
"controlAggregation": "beginColumnPages"
},
"detail": {
"name": "Detail",
"controlAggregation": "midColumnPages"
},
"detailDetail": {
"name": "DetailDetail",
"controlAggregation": "endColumnPages"
},
"page2": {
"name": "AboutPage",
"controlAggregation": "endColumnPages"
}
}
}
}
}
Similar to the previous step, we add the additional page view to our existing routes in the manifest.json
.
<mvc:View
controllerName="sap.ui.demo.fcl.controller.DetailDetail"
xmlns="sap.f"
xmlns:m="sap.m"
xmlns:mvc="sap.ui.core.mvc">
<DynamicPage toggleHeaderOnTitleClick="false">
<title>
<DynamicPageTitle>
<heading>
<m:FlexBox wrap="Wrap" fitContainer="true" alignItems="Center">
<m:Title text="{products>text}" wrapping="true" class="sapUiTinyMarginEnd"/>
</m:FlexBox>
</heading>
</DynamicPageTitle>
</title>
<content>
<m:Link text="Navigate to next page…" press=".handleAboutPress"/>
</content>
</DynamicPage>
</mvc:View>
We add a link in the detail-detail page with a press
event handler.
sap.ui.define([
"sap/ui/core/mvc/Controller",
'sap/f/library'
], function (Controller, fioriLibrary) {
"use strict";
return Controller.extend("sap.ui.demo.fcl.controller.DetailDetail", {
onInit: function () {
var oOwnerComponent = this.getOwnerComponent();
this.oRouter = oOwnerComponent.getRouter();
this.oModel = oOwnerComponent.getModel();
this.oRouter.getRoute("detailDetail").attachPatternMatched(this._onPatternMatch, this);
},
handleAboutPress: function () {
this.oRouter.navTo("page2", {layout: fioriLibrary.LayoutType.EndColumnFullScreen});
},
_onPatternMatch: function (oEvent) {
...
Finally, we add a handleAboutPress
function in the detail-detail page controller to navigate to the additional page without passing any data this time.