Fiori2.0学习笔记-UI5 Demo Of FixFlex & Form

FixFlex

需要引入xmlns:l=”sap.ui.layout”

<l:FixFlex>
    <l:fixContent>
        <Image width="150px" src="img/haibaoda.png" densityAware="true"/>
    </l:fixContent>//类似独占一行 固定布局
        <l:flexContent>
        <Text class="column1" text="Hello World"></Text>
    </l:flexContent>//类似向左浮动  柔性布局
</l:FixFlex>

justifyContent & alingnItems

justifyContent 水平方向位置

Start End Center SpaceAround分散分布

alingnItems 竖直方向位置

Start End Center SpaceAround


<FlexBox height="400px" justifyContent="Center" alignItems="Center">
    <items>
        <Button text="1" type="Emphasized"/>
        <Button text="2" type="Reject"/>
        <Button text="3" type="Accept"/>
    </items>
</FlexBox>

justifyContent

SpaceAround 水平靠两侧分散分布
SpaceBetween 水平中心分散分布

<FlexBox height="400px" justifyContent="SpaceAround">
    <items>
        <Text text="1"></Text>
        <Text text="2"></Text>
        <Text text="3"></Text>
        <Text text="4"></Text>
        <Text text="5"></Text>
    </items>
</FlexBox>

direction & renderType

direction item方向
Row
Column
ColumnReverse

renderType 给予类型
Bare Div

额外的还有三种button类型 首字母ear 打一个基本就出来了

<FlexBox height="400px" renderType="Bare" direction="Row" alignItems="Start">
    <items>
        <Button text="1" type="Emphasized"/>
        <Button text="2" type="Accept"/>
        <Button text="3" type="Reject"/>
    </items>
</FlexBox>

FlexBox 里还有一个wrap 属性 ,wrap=“wrap” 我看了加了去掉没有任何变化,暂记住这个东西

<Button icon="sap-icon://download">//下载按钮
<FlexBox renderType="Bare">
    <items>
        <Button text="Some text" type="Emphasized" class="sapUiSmallMarginEnd">
            <layoutData>
                <FlexItemData growFactor="1"/>
            </layoutData>
        </Button>
        <Input value="Some value" width="auto" class="sapUiSmallMarginEnd">
            <layoutData>
                <FlexItemData growFactor="2"/>
            </layoutData>
        </Input>
        <Button icon="sap-icon://download">
            <layoutData>
                <FlexItemData growFactor="3"/>
            </layoutData>
        </Button>
    </items>
</FlexBox>

下面这个demo厉害了,他有一个整的DIV,里面分四块,其中第三块又分为上一块下两块,注意 这个不是自适应

<HBox>//水平放置DIV
    <items>
        <core:HTML content="&lt;h2&gt;1&lt;/h2&gt;">
            <core:layoutData>
                <FlexItemData growFactor="5" styleClass="item1"/>// growFactor按在整个比例的大小,数字越大比例越大,在HBox和VBox都可以使用
            </core:layoutData>
        </core:HTML>
        <core:HTML content="&lt;h2&gt;2&lt;/h2&gt;">
            <core:layoutData>
                <FlexItemData growFactor="3" styleClass="item2"/>
            </core:layoutData>
        </core:HTML>
        <VBox fitContainer="true">
            <layoutData>
                <FlexItemData growFactor="7"/>
            </layoutData>
            <items>
                <core:HTML content="&lt;h2&gt;3&lt;/h2&gt;">
                    <core:layoutData>
                        <FlexItemData growFactor="2" styleClass="item3"/>
                    </core:layoutData>
                </core:HTML>
                <HBox fitContainer="true" alignItems="Stretch">
                    <layoutData>
                        <FlexItemData growFactor="5"/>
                    </layoutData>
                    <items>
                        <core:HTML content="&lt;h2&gt;4&lt;/h2&gt;">
                            <core:layoutData>
                                <FlexItemData growFactor="1" styleClass="item4"/>
                            </core:layoutData>
                        </core:HTML>
                        <core:HTML content="&lt;h2&gt;5&lt;/h2&gt;">
                            <core:layoutData>
                                <FlexItemData growFactor="2" styleClass="item5"/>
                            </core:layoutData>
                        </core:HTML>
                    </items>
                </HBox>
            </items>
        </VBox>
        <core:HTML content="&lt;h2&gt;6&lt;/h2&gt;">
            <core:layoutData>
                <FlexItemData growFactor="5" styleClass="item6"/>
            </core:layoutData>
        </core:HTML>
    </items>
</HBox>

下面介绍一个也是sap.ui.layout库里的一个玩应——Grid。
这玩应其实和那个栅格结构差不多,我们在这里就注重一下他的写法就OK。

defaultIndent="L1 M2 S4" 
hSpacing  0, 0.5 , 1 or 2 块与块之间的间距
vSpacing 0, 0.5, 1 and 2.行间距

Grid 里面设置好整体的属性 然后内容还是放在content中,一个块用一个ObjectListItem

<l:Grid defaultSpan="L2 M6 S12" hSpacing="2"  vSpacing="2" class="sapUiSmallMarginTop">
    <l:content>
        <!-- Third / Half width items -->
        <ObjectListItem id="productitem-small-0" title="{Name}" intro="{Category}"
            icon="{ path: 'Category', formatter: 'sap.ui.layout.sample.GridTiles.Formatter.categoryIcon' }"></ObjectListItem>
        <ObjectListItem id="productitem-small-1" title="{Name}" intro="{Category}"
            icon="{ path: 'Category', formatter: 'sap.ui.layout.sample.GridTiles.Formatter.categoryIcon' }"></ObjectListItem>
        <ObjectListItem id="productitem-small-2" title="{Name}" intro="{Category}"
            icon="{ path: 'Category', formatter: 'sap.ui.layout.sample.GridTiles.Formatter.categoryIcon' }"></ObjectListItem>
        <ObjectListItem id="productitem-small-3" title="{Name}" intro="{Category}"
            icon="{ path: 'Category', formatter: 'sap.ui.layout.sample.GridTiles.Formatter.categoryIcon' }"></ObjectListItem>
        <ObjectListItem id="productitem-small-4" title="{Name}" intro="{Category}"
            icon="{ path: 'Category', formatter: 'sap.ui.layout.sample.GridTiles.Formatter.categoryIcon' }"></ObjectListItem>
        <ObjectListItem id="productitem-small-5" title="{Name}" intro="{Category}"
            icon="{ path: 'Category', formatter: 'sap.ui.layout.sample.GridTiles.Formatter.categoryIcon' }"></ObjectListItem>
        <!-- Half/Full width items -->
        <ObjectListItem id="productitem-large-0" title="{Name}" intro="{Category}"
            icon="{ path: 'Category', formatter: 'sap.ui.layout.sample.GridTiles.Formatter.categoryIcon' }">
            <layoutData>
                <l:GridData span="L6 M12 S12"/>
            </layoutData>
        </ObjectListItem>
        <ObjectListItem id="productitem-large-1" title="{Name}" intro="{Category}"
            icon="{ path: 'Category', formatter: 'sap.ui.layout.sample.GridTiles.Formatter.categoryIcon' }">
            <layoutData>
                <l:GridData span="L6 M12 S12"/>
            </layoutData>
        </ObjectListItem>
    </l:content>
</l:Grid>

以上就是Flex的全部内容,下面我们走进Form的世界

整个Form要放在form里,表单内容要放在formContainers里,一组Form放在formContainer,可以在后面加单个Form标题,所有表单元素要卸载FormElements,一个表单元素可以写在FormElement中,后面加一个Label标签可以给单组元素命名,在FormElement标签里,加一个Text标签可以完整单条Form数据

<f:Form id="FormDisplay354" editable="true">
    <f:title>
        <core:Title text="Address"/>
    </f:title>
    <f:layout>
        <f:ResponsiveGridLayout labelSpanXL="6" labelSpanL="6" labelSpanM="3" labelSpanS="12" adjustLabelSpan="false" columnsXL="3"
            breakpointL="1200" breakpointM="400" columnsL="2" columnsM="2" singleContainerFullSize="false"/>
    </f:layout>
    <f:formContainers>
        <f:FormContainer title="groupd1">
            <f:formElements>
                <f:FormElement label="Name">
                    <f:fields>
                        <Text text="Richard" id="nameText"/>

                    </f:fields>
                </f:FormElement>
                <f:FormElement label="Street">
                    <f:fields>
                        <Text text="Haerbin"/>
                    </f:fields>
                </f:FormElement>
                <f:FormElement label="ZIP Code/City">
                    <f:fields>
                        <Text text="150000"/>
                    </f:fields>
                </f:FormElement>
                <f:FormElement label="Country">
                    <f:fields>
                        <Text text="China" id="countryText"/>
                    </f:fields>
                </f:FormElement>
            </f:formElements>
        </f:FormContainer>
        <f:FormContainer title="groupd2">
            <f:formElements>
                <f:FormElement label="Name">
                    <f:fields>
                        <Text text="Richard" id="richard1"/>
                    </f:fields>
                </f:FormElement>
                <f:FormElement label="Street">
                    <f:fields>
                        <Text text="Haerbin"/>
                    </f:fields>
                </f:FormElement>
                <f:FormElement label="ZIP Code/City">
                    <f:fields>
                        <Text text="150000"/>
                    </f:fields>
                </f:FormElement>
                <f:FormElement label="Country">
                    <f:fields>
                        <Text text="China" id="china1"/>
                    </f:fields>
                </f:FormElement>
            </f:formElements>
        </f:FormContainer>
    </f:formContainers>
</f:Form>

下面我们对上面那个form进行扩充和美化。
首先我们我添加一个Toolbar(工具栏),里面包括标题ADDRESS和两个按钮

<f:toolbar>
    <Toolbar id="TB1">
        <Title id="Title1" text="Address" level="H4" titleStyle="H4"/>
        <ToolbarSpacer/>
        <Button icon="sap-icon://drop-down-list"/>
    </Toolbar>
</f:toolbar>

然后我们在对整体布局进行调整

<f:layout>
    <f:ResponsiveGridLayout labelSpanXL="4" labelSpanL="3" labelSpanM="4" labelSpanS="12" adjustLabelSpan="false" emptySpanXL="0" emptySpanL="0" emptySpanM="0" emptySpanS="0" columnsXL="2" columnsL="2" columnsM="1" singleContainerFullSize="false"/>
</f:layout>

然后我们对单个Form里后面添加两端长度不一样的input输入框

<f:FormElement label="Street">
    <f:fields>
        <Input value="">
            <layoutData>
                <l:GridData span="XL2 L6 M3 S4"/>
            </layoutData>
        </Input>
        <Input value="">
            <layoutData>
                <l:GridData span="XL2 L3 M3 S4"/>
            </layoutData>
        </Input>
    </f:fields>
</f:FormElement>

然后我们在Country元素中加一个下拉选择框

<f:FormElement label="Country">
    <f:fields>
        <Select width="100%" id="country" selectedKey="">
            <items>
                <core:Item text="Germany" key="Germany"/>
                <core:Item text="USA" key="USA"/>
                <core:Item text="England" key="England"/>
            </items>
        </Select>
    </f:fields>
</f:FormElement>

下面我们在接触一个Form类型 ,叫做SimpleForm,就顾名思义,确实简短粗暴的语义化标签让我看着比Form舒服

<f:SimpleForm id="SimpleFormDisplay354wideDual" editable="false" layout="ResponsiveGridLayout" title="Address" labelSpanXL="4"
    labelSpanL="3" labelSpanM="4" labelSpanS="12" adjustLabelSpan="false" emptySpanXL="0" emptySpanL="4" emptySpanM="0" emptySpanS="0"
    columnsXL="2" columnsL="2" columnsM="2" singleContainerFullSize="false">
    <f:content>
        <core:Title text="Office" class="T1"/>
        <Label text="Name"/>
        <Text text="my Name"/>
        <Label text="Street/No."/>
        <Text text="songhua street"/>
        <Label text="ZIP Code/City"/>
        <Text text="150000"/>
        <Label text="Country"/>
        <Text text="China"/>

        <core:Title text="Online"/>
        <Label text="Web"/>
        <Text text="www.sdf"/>
        <Label text="Twitter"/>
        <Text text="twitter"/>

        <core:Title text="Offline"/>
        <Label text="Web"/>
        <Text text="www.sdf"/>
        <Label text="Twitter"/>
        <Text text="twitter"/>
    </f:content>
</f:SimpleForm>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值