2017-09-20 73 views
-2

我想設計一個屏幕,該屏幕將如下所示:SAPUI5佈局,背景顏色和圖像

Sample Screen

我真的不知道如何實現這一目標。我試過在SimpleForm內放置兩個控件。但是,他們沒有按預期工作。

有人可以分享將輸出結果如上所述的XML視圖代碼?請注意我的問題是如何放置控件,根據上面的屏幕實現背景顏色和整體佈局。

+0

你好安蒂.. 感謝您的答覆。 事實上,我很困惑如何將圖像分成兩部分,如圖像所示,以及如何在屏幕上自由放置控件而不會失去屏幕的響應特性 –

回答

0

您可以通過以下佈局實現其控制

分配器佈局(sap.ui.layout.Splitter),VerticalLayout的(sap.ui.layout.VerticalLayout)和Flexbox的 (sap.m.FlexBox)

XML查看:

<l:Splitter id="pgSplitter" class="pgSplitter" width="100%">   
    <l:VerticalLayout id="leftLayout" class="leftLayout" height="100%" width="100%" > 
     <l:Splitter id="leftSplitter" width="100%" orientation="Vertical"> 
      <FlexBox id="leftVLyt" 
       width="100%" height="100%" 
       justifyContent="Center" 
       alignItems="Start"> 
       <items> 
        <Image class="sapUiSmallMarginTop" src="https://sapui5.hana.ondemand.com/resources/sap/ui/documentation/sdk/images/logo_ui5.png" densityAware="false" /> 
       </items> 
       <layoutData><l:SplitterLayoutData size="50%" resizable="false" /></layoutData> 
      </FlexBox> 
      <FlexBox 
       width="100%" height="100%" 
       justifyContent="Center" 
       alignItems="Start"> 
       <items> 
        <ObjectIdentifier title="Employee Info" text="" titleActive="false" /> 
       </items> 
       <layoutData><l:SplitterLayoutData size="50%" /></layoutData> 
      </FlexBox> 
     </l:Splitter> 
     <l:layoutData><l:SplitterLayoutData size="50%" resizable="false" /></l:layoutData> 
    </l:VerticalLayout> 

    <l:VerticalLayout id="rightLayout" class="rightLayout" height="100%" width="100%" > 
     <l:Splitter id="rightSplitter" width="100%" orientation="Vertical"> 
      <FlexBox id="rightVLyt" 
       width="100%" height="100%" 
       justifyContent="Center" 
       alignItems="Center"> 
       <items> 
        <f:SimpleForm editable="true" backgroundDesign="Transparent" layout="GridLayout" width="80%" height="100%"> 
         <f:content> 
          <Label text=""/> 
          <Input type="Text" placeholder="Enter Name.." width="200px"/> 

          <Label text=""/> 
          <Input type="Text" placeholder="Enter Age.." width="200px"/> 

          <Label text=""/> 
          <Input type="Text" placeholder="Enter Email.." width="200px"/> 
         </f:content> 
        </f:SimpleForm> 
       </items> 
       <layoutData><l:SplitterLayoutData size="50%" resizable="false" /></layoutData> 
      </FlexBox> 
      <FlexBox 
       width="100%" height="80%" 
       justifyContent="Center" 
       alignItems="Center"> 
       <items> 
        <Button text="Submit" class="sapUiSmallMarginEnd" /> 
        <Button text="Reset"/> 
       </items> 
       <layoutData><l:SplitterLayoutData size="50%" /></layoutData> 
      </FlexBox> 

     </l:Splitter> 
     <l:layoutData><l:SplitterLayoutData size="50%" /></l:layoutData> 
    </l:VerticalLayout> 
</l:Splitter> 

控制器:

onInit: function() { 
    var body = document.body, 
     html = document.documentElement, 
     pgHeight = Math.max(body.scrollHeight, body.offsetHeight, 
         html.clientHeight, html.scrollHeight, html.offsetHeight);//page Height 

    var oSplitter = this.getView().byId("pgSplitter"); 
    //var pgHeight = screen.height; 
    oSplitter.setHeight(String(pgHeight)+"px"); 

    var oLeftSplitter = this.getView().byId("leftSplitter"); 
    if(oLeftSplitter) 
     oLeftSplitter.setHeight(String(pgHeight)+"px");//left splitter height 

    var oRightSplitter = this.getView().byId("rightSplitter"); 
    if(oRightSplitter) 
     oRightSplitter.setHeight(String(pgHeight)+"px");//right splitter height 
}, 

CSS:

.pgSplitter .leftLayout {background: #22B14C;} 

:有多種方式實現上述佈局。根據您的要求修改代碼。