Flex Box - Nested
Flex Boxes can be nested. Remember also that HBox and VBox are 'convenience' controls based on the Flex Box control.
Z2UI5_CL_SMPC_APP_026
Controls
sap.m
UI5 1.71
The facts
- Repository
- abap2UI5/samples-controls
- Class
Z2UI5_CL_SMPC_APP_026- Source file
z2ui5_cl_smpc_app_026.clas.abap↗- Library
- sap.m
- UI5 entity
sap.m.FlexBox- Demo kit sample
sap.m.sample.FlexBoxNested- SAP's own sample
- running at sdk.openui5.org ↗
- Minimum UI5
- 1.71 — the floor abap2UI5 holds its samples to
- In the playground
- runs in the browser, with no system and nothing installed
Keywords: flexbox, flex, box, sap.m, boxes, nested., remember, html, hbox, flexitemdata, vbox
Controls it builds
Read out of the builder chain by the abap2UI5 linter, not from the category this sample is filed under — which is what makes “which samples build one of these” a question the catalogue can answer at all.
Libraries
Run it here
The sample running, in this page — the app on its own, with no editor over it.
Switch to Playground with this code
Nothing is installed and nothing is sent anywhere: the ABAP is compiled to JavaScript in this browser and runs against abap2UI5 itself.
The ABAP
z2ui5_cl_smpc_app_026.clas.abap — 139 lines
Click a number to link to a line — shift-click for a range.
Read it on GitHub ↗
" @keywords flexbox flex box sap.m boxes nested. remember html hbox flexitemdata vbox
" @summary Flex Boxes can be nested. Remember also that HBox and VBox are 'convenience' controls based on the Flex Box control.
CLASS z2ui5_cl_smpc_app_026 DEFINITION PUBLIC.
PUBLIC SECTION.
INTERFACES z2ui5_if_app.
PROTECTED SECTION.
DATA client TYPE REF TO z2ui5_if_client.
METHODS view_display.
PRIVATE SECTION.
ENDCLASS.
CLASS z2ui5_cl_smpc_app_026 IMPLEMENTATION.
METHOD z2ui5_if_app~main.
me->client = client.
IF client->check_on_navigated( ).
view_display( ).
ENDIF.
ENDMETHOD.
METHOD view_display.
" the sample's style.css, injected via a core:HTML content attribute
" (see CAPABILITIES.md) - placed before the HBox so it is no flex item
" literal braces escaped as \{ \} - the XMLView binding parser reads
" unescaped braces in attribute values as a binding
DATA(css) = `<style>.nestedFlexboxes .item1\{padding:1rem;background-color:#d1dbbd\}` &&
`.nestedFlexboxes .item2\{padding:1rem;background-color:#7D8A2E\}` &&
`.nestedFlexboxes .item3\{padding:1rem;background-color:#C9D787\}` &&
`.nestedFlexboxes .item4\{padding:1rem;background-color:#FFFFFF\}` &&
`.nestedFlexboxes .item5\{padding:1rem;background-color:#FFC0A9\}` &&
`.nestedFlexboxes .item6\{padding:1rem;background-color:#FF8598\}` &&
`.nestedFlexboxes h2\{color:#32363a\}</style>`.
DATA(view) = z2ui5_cl_ui5_view_builder=>factory( ).
view->ele( n = `View` ns = `mvc`
)->a( n = `xmlns` v = `sap.m`
)->a( n = `xmlns:mvc` v = `sap.ui.core.mvc`
)->a( n = `xmlns:core` v = `sap.ui.core`
)->tag( n = `HTML` ns = `core`
)->a( n = `content` v = css
)->ele( `HBox`
)->a( n = `fitContainer` v = `true`
)->a( n = `alignItems` v = `Stretch`
)->a( n = `class` v = `sapUiSmallMargin nestedFlexboxes`
)->ele( n = `HTML` ns = `core`
)->a( n = `content` v = `<h2>1</h2>`
)->ele( n = `layoutData` ns = `core`
)->tag( `FlexItemData`
)->a( n = `growFactor` v = `2`
)->a( n = `styleClass` v = `item1`
)->end(
)->end(
)->ele( n = `HTML` ns = `core`
)->a( n = `content` v = `<h2>2</h2>`
)->ele( n = `layoutData` ns = `core`
)->tag( `FlexItemData`
)->a( n = `growFactor` v = `3`
)->a( n = `styleClass` v = `item2`
)->end(
)->end(
)->ele( `VBox`
)->a( n = `fitContainer` v = `true`
)->ele( `layoutData`
)->tag( `FlexItemData`
)->a( n = `growFactor` v = `7`
)->end(
)->ele( n = `HTML` ns = `core`
)->a( n = `content` v = `<h2>3</h2>`
)->ele( n = `layoutData` ns = `core`
)->tag( `FlexItemData`
)->a( n = `growFactor` v = `5`
)->a( n = `styleClass` v = `item3`
)->end(
)->end(
)->ele( `HBox`
)->a( n = `fitContainer` v = `true`
)->a( n = `alignItems` v = `Stretch`
)->ele( `layoutData`
)->tag( `FlexItemData`
)->a( n = `growFactor` v = `3`
)->end(
)->ele( n = `HTML` ns = `core`
)->a( n = `content` v = `<h2>4</h2>`
)->ele( n = `layoutData` ns = `core`
)->tag( `FlexItemData`
)->a( n = `growFactor` v = `1`
)->a( n = `styleClass` v = `item4`
)->end(
)->end(
)->ele( n = `HTML` ns = `core`
)->a( n = `content` v = `<h2>5</h2>`
)->ele( n = `layoutData` ns = `core`
)->tag( `FlexItemData`
)->a( n = `growFactor` v = `1`
)->a( n = `styleClass` v = `item5`
)->end(
)->end(
)->end(
)->end(
)->ele( n = `HTML` ns = `core`
)->a( n = `content` v = `<h2>6</h2>`
)->ele( n = `layoutData` ns = `core`
)->tag( `FlexItemData`
)->a( n = `growFactor` v = `5`
)->a( n = `styleClass` v = `item6` ).
client->view_display( view->stringify( ) ).
ENDMETHOD.
ENDCLASS.
More in sap.m
- Display List Item — Use the Display List Item for showing name/value pairs.
- Draft Indicator — The Draft Indicator shows that eighter currently a draft is saving or that it is already…
- Facet Filter - Light — This is a 'Light' version of the Facet Filter. It is for small displays where only a sele…
- Feed Content — Shows the tile containing the text of the feed, a subheader, and a numeric value.
- Feed — This sample shows you how to build a complete feed user interface by combining a FeedInpu…
- Feed List Item — The Feed List Item provides a standard UI for 'feeds' where multiple users publish inform…
- Generic Tag with Different Configurations — Previews of the GenericTag control based on combinations of different sets of properties.
- KPI Tile — Shows KPI Tile samples that can contain header, subheader, key value, trend, scale, unit…
- Header Container - Horizontal Mode — The Header Container with horizontal layout. It provides horizontal scrolling on mobile d…
- Icon Tab Bar - Stretch Content Height — In this example, the IconTabBar height is stretched to the maximum height of the page con…
- Image with ImageMode.Background — Visualizes the state of the control when the mode property is set to ImageMode.Background.
- Input - Value States — This example shows different input value states.
On this page