[UI5 常用控件] 09.IconTabBar,IconTabHeader,TabContainer

这篇具有很好参考价值的文章主要介绍了[UI5 常用控件] 09.IconTabBar,IconTabHeader,TabContainer。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

本章节记录常用控件 IconTabBar,IconTabHeader, TabContainer
其路径分别是:

  • sap.m.IconTabBar
  • sap.m.IconTabHeader
  • sap.m.TabContainer

1. IconTabBar

1.1 简介

在SAP UI5中,IconTabBar 是一种用户界面控件,通常用于创建具有多个标签页的导航界面。它允许用户通过标签切换内容区域,每个标签通常与一个特定的视图或功能相关联。IconTabBar 通常包含多个 IconTabFilter,每个 IconTabFilter 都表示一个标签页。

主要用途包括:

  • 导航: IconTabBar 可以用作导航控件,允许用户浏览不同的页面或功能区域。每个标签通常与一个特定的视图或功能相关联,用户可以通过点击标签切换到不同的内容。

  • 分类和过滤: 可以使用 IconTabBar 来对数据进行分类和过滤。每个标签可能代表不同的类别,用户可以通过选择标签来过滤或查看特定类别的数据。

  • 组织内容: 如果应用程序有多个功能或模块,IconTabBar 可以用于组织和呈现这些功能,使用户能够方便地访问和切换。

  • 图标导航: 由于每个标签都可以关联一个图标,IconTabBar 也可以用作图标导航,通过视觉上识别图标来切换到不同的页面或功能。

1.2 基本结构

<mvc:View
  xmlns:mvc="sap.ui.core.mvc"
  xmlns="sap.m">

  <IconTabBar>
    <items>
      <IconTabFilter text="Tab 1" icon="sap-icon://home">
        <!-- Content for Tab 1 -->
      </IconTabFilter>
      <IconTabFilter text="Tab 2" icon="sap-icon://list">
        <!-- Content for Tab 2 -->
      </IconTabFilter>
      <!-- Additional tabs as needed -->
    </items>
  </IconTabBar>

</mvc:View>

1.3 用法

1.3.1 颜色,拖放,溢出

  • 颜色
    IconTabFilter: iconColor

  • 拖放
    IconTabBar: enableTabReordering ( true,false )

  • 溢出
    IconTabBar: tabsOverflowMode (End, StartAndEnd )
    [UI5 常用控件] 09.IconTabBar,IconTabHeader,TabContainer,UI5,UI5,SAP

  • View文章来源地址https://www.toymoban.com/news/detail-830355.html

    <Panel headerText="Color,enableTabReordering,tabsOverflowMode">
        <IconTabBar enableTabReordering="true" tabsOverflowMode="StartAndEnd">
            <items>
                <IconTabFilter icon="sap-icon://inventory" text="None"/>
                <IconTabFilter icon="sap-icon://inventory" iconColor="Contrast" text="Contrast"/>
                <IconTabFilter icon="sap-icon://inventory" iconColor="Critical" text="Critical"/>
                <IconTabFilter icon="sap-icon://inventory" iconColor="Default" text="Default"/>
                <IconTabFilter icon="sap-icon://inventory" iconColor="Marker" text="Marker"/>
                <IconTabFilter icon="sap-icon://inventory" iconColor="Negative" text="Negative"/>
                <IconTabFilter icon="sap-icon://inventory" iconColor="Neutral" text="Neutral"/>
                <IconTabFilter icon="sap-icon://inventory" iconColor="NonInteractive" text="NonInteractive"/>
                <IconTabFilter icon="sap-icon://inventory" iconColor="Positive" text="Positive"/>
                <IconTabFilter icon="sap-icon://inventory" iconColor="Tile" text="Tile"/>

            </items>
        </IconTabBar>

    </Panel>

1.3.2 Icons Only , Inner Contents

[UI5 常用控件] 09.IconTabBar,IconTabHeader,TabContainer,UI5,UI5,SAP

  • View
    <Panel headerText="Icons Only , Inner Contents">
        <IconTabBar>
            <items>
                <IconTabFilter icon="sap-icon://begin" iconColor="Contrast" >
                    <Text text="此处可以添加内容 A"></Text>
                </IconTabFilter>
                <IconTabFilter icon="sap-icon://compare" iconColor="Critical" >
                    <Text text="此处可以添加内容 B"></Text>
                </IconTabFilter>
                <IconTabFilter icon="sap-icon://inventory" iconColor="Default" >
                    <Text text="此处可以添加内容 C"></Text>
                </IconTabFilter>
            </items>
        </IconTabBar>
    </Panel>

1.3.3 showAll,Count,key,IconTabSeparator

当设置showAll时,组件不会显示图标。
IconTabBar : select
IconTabFilter : showAll
IconTabFilter : count
IconTabFilter : key
[UI5 常用控件] 09.IconTabBar,IconTabHeader,TabContainer,UI5,UI5,SAP

  • View
   <Panel headerText="showAll,Count,key,IconTabSeparator">
       <IconTabBar select="onSelectFilter">
           <items>
               <IconTabFilter showAll="true" count="10" text="Users" key="ALL"/>
               <IconTabSeparator />
               <IconTabFilter icon="sap-icon://inventory" count="10" iconColor="Contrast" key="NEW"/>
               <IconTabFilter icon="sap-icon://begin" count="20" iconColor="Critical" text="Warrning" key="OLD"/>
               
           </items>    
       </IconTabBar>
   </Panel>
  • select Event
    [UI5 常用控件] 09.IconTabBar,IconTabHeader,TabContainer,UI5,UI5,SAP

  • Controller

	onSelectFilter:function(oEvent){
	   var sKey = oEvent.getParameter("key")
	    new sap.m.MessageToast.show("Selected filter: " + sKey);
	}

1.3.4 Only Text

[UI5 常用控件] 09.IconTabBar,IconTabHeader,TabContainer,UI5,UI5,SAP

  • View
    <Panel headerText="Only Text">
        <IconTabBar >
            <items>
                <IconTabFilter count="10" iconColor="Contrast" text="New" key="NEW"/>
                <IconTabFilter count="20" iconColor="Critical" text="Old" key="OLD"/>
                <IconTabFilter count="30" iconColor="Positive" text="None" key="NONE"/>
            </items>    
        </IconTabBar>
    </Panel>

1.3.5 headerMode-Inline

[UI5 常用控件] 09.IconTabBar,IconTabHeader,TabContainer,UI5,UI5,SAP

  • View
    <Panel headerText="headerMode-Inline">
        <IconTabBar headerMode="Inline">
            <items>
                <IconTabFilter count="10" iconColor="Contrast" text="New" key="NEW"/>
                <IconTabFilter count="20" iconColor="Critical" text="Old" key="OLD"/>
                <IconTabFilter count="30" iconColor="Positive" icon="sap-icon://newspaper" text="None" key="NONE"/>
            </items>    
        </IconTabBar>
    </Panel>

1.3.6 design,IconTabSeparator-icon

经常用于流程业务上
IconTabFilter : design ( Horizontal )
IconTabSeparator : icon
[UI5 常用控件] 09.IconTabBar,IconTabHeader,TabContainer,UI5,UI5,SAP

  • View
    <Panel headerText="design,IconTabSeparator-icon">
        <IconTabBar select="onSelectFilter2">
            <items>
                <IconTabFilter icon="sap-icon://newspaper" iconColor="Positive" count="10 of 40" text="New" key="NEW" 	design="Horizontal"/>
                <IconTabSeparator icon="sap-icon://open-command-field" />
                <IconTabFilter icon="sap-icon://newspaper" iconColor="Critical" count="20 of 40" text="Processing" key="PROCESSING" 	design="Horizontal"/>
                <IconTabSeparator icon="sap-icon://open-command-field" />
                <IconTabFilter icon="sap-icon://newspaper" iconColor="Negative" count="10 of 40" text="End" key="END" 	design="Horizontal"/>
            </items>
        </IconTabBar>
    </Panel>

1.3.7 DensityMode-Compact

以小图标显示
IconTabBar :tabDensityMode ( Compact )
[UI5 常用控件] 09.IconTabBar,IconTabHeader,TabContainer,UI5,UI5,SAP

    <Panel headerText="DensityMode-Compact">
        <IconTabBar tabDensityMode="Compact">
            <items>
                <IconTabFilter icon="sap-icon://newspaper" iconColor="Positive" count="10 of 40" text="New" key="NEW" 	design="Horizontal"/>
                <IconTabSeparator icon="sap-icon://open-command-field" />
                <IconTabFilter icon="sap-icon://newspaper" iconColor="Critical" count="20 of 40" text="Processing" key="PROCESSING" 	design="Horizontal"/>
                <IconTabSeparator icon="sap-icon://open-command-field" />
                <IconTabFilter icon="sap-icon://newspaper" iconColor="Negative" count="10 of 40" text="End" key="END" 	design="Horizontal"/>
            </items>
        </IconTabBar>
    </Panel>

1.3.8 Sub Tabs

在IconTabFilter 里再嵌套items实现
[UI5 常用控件] 09.IconTabBar,IconTabHeader,TabContainer,UI5,UI5,SAP

  • View
     <Panel headerText="Sub Tabs">
         <IconTabBar headerMode="Inline">
             <items>
                 <IconTabFilter count="10" iconColor="Contrast" text="New" key="NEW">
                     <items>
                         <IconTabFilter count="10" iconColor="Contrast" text="New1" key="NEW1"/>
                     </items>
                 </IconTabFilter>
                 <IconTabFilter count="20" iconColor="Critical" text="Old" key="OLD"/>
                 <IconTabFilter count="30" iconColor="Positive" icon="sap-icon://newspaper" text="None" key="NONE"/>
             </items>    
         </IconTabBar>
     </Panel>

1.3.9 Badges

IconTabFilter里嵌套customData-BadgeCustomData 实现

  • 再标签右上方显示一个小点

  • 当点击标签时,过一段时间自动消失(大概5秒)

  • 第一个标签不会显示小点(即使设置了)
    [UI5 常用控件] 09.IconTabBar,IconTabHeader,TabContainer,UI5,UI5,SAP

  • View

	<Panel headerText="Badges">
      <IconTabBar headerMode="Inline">
          <items>
              
              <IconTabFilter count="10" iconColor="Marker" text="New" key="NEW">
                  <customData>
                      <BadgeCustomData visible="true"/>
                  </customData>
              </IconTabFilter>
              <IconTabFilter count="20" iconColor="Critical" text="Old" key="OLD">
                  <customData>
                      <BadgeCustomData visible="true"/>
                  </customData>
              </IconTabFilter>
              <IconTabFilter count="30" iconColor="Positive" icon="sap-icon://newspaper" text="None" key="NONE"/>

          </items>    
      </IconTabBar>
  </Panel>

1.3.10 stretchContentHeight

当设置stretchContentHeight时,自动把Tab固定到画面的最上方。

  • IconTabBar:stretchContentHeight ( false )

[UI5 常用控件] 09.IconTabBar,IconTabHeader,TabContainer,UI5,UI5,SAP

  <Panel headerText="stretchContentHeight,ScrollContainer " height="300px">
      <IconTabBar
          id="idIconTabBar"
          select=".onFilterSelect"
          class="sapUiResponsiveContentPadding"
          stretchContentHeight="false"

          >
          <items>
              <IconTabFilter
                  showAll="true"
                  count="1"
                  text="Products"
                  key="All"
              />
              <IconTabSeparator />
              <IconTabFilter
                  icon="sap-icon://begin"
                  iconColor="Contrast"
                  count="{counts>/PriceLessThan20}"
                  text="Ok"
                  key="Ok"
              />
              <IconTabFilter
                  icon="sap-icon://compare"
                  iconColor="Critical"
                  count="{counts>/Price20To40}"
                  text="Heavy"
                  key="Heavy"
              />
              <IconTabFilter
                  icon="sap-icon://inventory"
                  iconColor="Negative"
                  count="{counts>/PriceGreaterThan40}"
                  text="Overweight"
                  key="Overweight"
              />
          </items>
          <content>
              <ScrollContainer
                  height="100%"
                  width="100%"
                  horizontal="false"
                  vertical="true">
              <Table items="{/Products}" width="100%">
                  <columns>
                      <Column>
                          <Text text="Product" />
                      </Column>
                      <Column>
                          <Text text="Supplier" />
                      </Column>
                      <Column>
                          <Text text="Price" />
                      </Column>
                  </columns>
                  <items>
                      <ColumnListItem>
                          <cells>
                              <Text text="{Product}" />
                              <Text text="{Supplier}" />
                              <ObjectNumber
                                  number="{
                                  parts:[{path:'Price'},{path:'Currency'}],
                                  type: 'sap.ui.model.type.Currency',
                                  formatOptions: {showMeasure: false}
                              }"
                                  state="{
                                      parts: [
                                          {path: 'Price'}
                                      ],
                                      formatter: '.formatter.priceState'
                                  }"
                                  unit="{Currency}"
                              />
                          </cells>
                      </ColumnListItem>
                  </items>
              </Table>
          </ScrollContainer>
          </content>
      </IconTabBar>
  </Panel>

2. IconTabHeader

IconTabHeader的用法和IconTabBar差不多,具体看效果
[UI5 常用控件] 09.IconTabBar,IconTabHeader,TabContainer,UI5,UI5,SAP

  • View
   <Panel headerText="IconTabHeader" >
         <IconTabHeader  class="sapUiMediumMarginBottom">
             <items>
                 <IconTabFilter key="info" text="Info" iconColor="Critical" icon="sap-icon://newspaper" count="10">
                     <items>
                         <IconTabFilter count="10" iconColor="Contrast" text="New1" key="NEW1"/>
                     </items>
                 </IconTabFilter>
                 <IconTabFilter key="attachments" icon="sap-icon://notes" text="Attachments" count="3" />
                 <IconTabFilter key="notes" icon="sap-icon://number-sign" text="Notes" count="12" />
                 <IconTabFilter key="people" icon="sap-icon://open-folder" text="People"/>
             </items>
         </IconTabHeader>
         
         <IconTabHeader mode="Inline">
             <items>
                 <IconTabFilter key="info" text="Info" iconColor="Critical" count="10">
                     <items>
                         <IconTabFilter count="10" iconColor="Contrast" text="New1" key="NEW1"/>
                     </items>
                 </IconTabFilter>
                 <IconTabFilter key="attachments" text="Attachments" count="3" />
                 <IconTabFilter key="notes" text="Notes" count="12" />
                 <IconTabFilter key="people" text="People"/>
             </items>
         </IconTabHeader>
     </Panel>

3. Tab Container

TabContainer 控件用于创建带有选项卡的容器,以实现分页或标签式导航。

3.1 基本结构

<TabContainer
        id="myTabContainer"
        class="sapUiResponsiveContentPadding"
        expanded="{/expanded}"
        selectedKey="{/selectedKey}">
        
        <!-- TabContainerItems will be added here -->
        <TabContainerItem>
        	<content>
        		<!-- contents will be added here -->
			</content>
		</TabContainerItem>

</TabContainer>

3.2 属性及方法

  • 属性
    TabContainer:items (需要绑定的数据)
    TabContainer:showAddNewButton (显示加号)
    TabContainer:addNewButtonPress (点击加号时触发的事件)
    TabContainer:itemClose (点击关闭时触发的事件)
    TabContainerItem:name,additionalText,icon

  • 方法
    setSelectedItem:激活标签
    addItem:添加标签
    getItems:获取所有标签
    removeItem:删除标签
    [UI5 常用控件] 09.IconTabBar,IconTabHeader,TabContainer,UI5,UI5,SAP

  • View

	<Panel headerText="TabContainer" height="400px" width="1000px">
	    <TabContainer items="{ path: 'emp>/employees' }" id="myTabContainer"
	        showAddNewButton="true"
	        class="sapUiResponsiveContentPadding sapUiResponsivePadding--header"
	        addNewButtonPress="addNewButtonPressHandler" 
	        itemClose="itemCloseHandler">
	    <items>
	        <TabContainerItem
	            
	            name="{emp>name}"
	            additionalText="{emp>position}"
	            icon="{emp>icon}">
	            <content>
	                <f:Form editable="false">
	                    <f:title>
	                        <core:Title text="Employee" />
	                    </f:title>
	                    <f:layout>
	                            <f:ResponsiveGridLayout/>
	                    </f:layout>
	                    <f:FormContainer>
	                        <f:FormElement label="First Name">
	                            <f:fields>
	                                <Text text="{emp>empFirstName}"/>
	                            </f:fields>
	                        </f:FormElement>
	                        <f:FormElement label="Last Name">
	                            <f:fields>
	                                <Text text="{emp>empLastName}" />
	                            </f:fields>
	                        </f:FormElement>
	                        <f:FormElement label="Position">
	                            <f:fields>
	                                <Text text="{emp>position}" />
	                            </f:fields>
	                        </f:FormElement>
	                        <f:FormElement label="Salary">
	                            <f:fields>
	                                <Text text="{salary} EUR"/>
	                            </f:fields>
	                        </f:FormElement>
	                    </f:FormContainer>
	                </f:Form>
	            </content>
	        </TabContainerItem>
	    </items>
	    </TabContainer>
	</Panel>
  • Controller
	addNewButtonPressHandler: function () {
	
	     // 假设要添加的新数据对象
	     var newEmployee = {
	         name: "New",
	         empFirstName: "New",
	         empLastName: "Employee",
	         position: "New Position",
	         icon: "sap-icon://accessibility",
	         iconTooltip: "new",
	         salary: 1500.00
	     };
	
	     var oModel2 = this.getView().getModel("emp");
	     // 获取当前模型的数据
	     var currentData = oModel2.getData();
	
	     // 添加新数据对象到数组中
	     currentData.employees.push(newEmployee);
	
	     // 设置更新后的数据回到模型中
	     oModel2.setData(currentData);
	
	
	     // var newEmployee = new sap.m.TabContainerItem({
	     //     name: "New",
	     //     additionalText: "Developer",
	     //     icon: "sap-icon://group",
	     //     iconTooltip: "group",
	     //     modified: false
	     // });
	
	     var tabContainer = this.byId("myTabContainer");
	     tabContainer.getItems().some(function (item) {
	         if (item.getName() === newEmployee.name) {
	             tabContainer.setSelectedItem(item);
	             return true; // 停止遍历
	         }
	     });
	
	 },
	 itemCloseHandler: function (oEvent) {
	     // prevent the tab being closed by default
	     oEvent.preventDefault();
	
	     var oTabContainer = this.byId("myTabContainer");
	     var oItemToClose = oEvent.getParameter('item');
	
	     sap.m.MessageBox.confirm("Do you want to close the tab '" + oItemToClose.getName() + "'?", {
	         onClose: function (oAction) {
	             if (oAction === sap.m.MessageBox.Action.OK) {
	                 oTabContainer.removeItem(oItemToClose);
	                 sap.m.MessageToast.show("Item closed: " + oItemToClose.getName(), { duration: 500 });
	             } else {
	                 sap.m.MessageToast.show("Item close canceled: " + oItemToClose.getName(), { duration: 500 });
	             }
	         }
	     });
	 }

到了这里,关于[UI5 常用控件] 09.IconTabBar,IconTabHeader,TabContainer的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android布局和控件:创建用户界面的XML布局文件和常用UI控件详解

    在Android应用开发中,创建用户界面是一个重要的任务。通过使用XML布局文件和常用的UI控件,开发人员可以设计和构建出吸引人且功能丰富的应用界面。本文将详细介绍如何使用XML布局文件来创建Android应用的用户界面,并深入探讨一些常用UI控件的属性和用法。 XML布局文件是

    2024年02月17日
    浏览(34)
  • SAP UI5 官方教程学习记录

    最近有闲跟着官方的Get Started教程学习了UI5,记录一下自己学习中遇到的几个问题。 本文链接:https://www.cnblogs.com/hhelibeb/p/17835722.html 注意文档可能不是最新的,和实际示例代码有出入,比如本文写作时,Data Binding Tutorial里面的Step 1: No Data Binding 教程里写的代码是, 示例的实

    2024年02月05日
    浏览(30)
  • [UI5] ODATA V4中的CRUD

    ODATA V4在CRUD方面与V2截然不同。 这篇文章简单介绍V4中是如何进行CRUD操作 Model不再有read方法, 一般是把Path绑定到View中进行读取, 如果需要额外的读取数据,可使用如下方法 需要在Context中调用requestObject方法才能实现数据的读取 oModel.bindContext方法需要绑定对应的Entity或者路

    2024年01月21日
    浏览(31)
  • SAP UI5 sap.ui.require.toUrl 的作用介绍

    这个 API 根据提供的资源名称计算 URL. 计算过程中,会考虑任何配置的 ID 映射或资源路径(它还支持路径内的相对段,例如 ./ 和 …/,但不支持在其开头。如果相对导航将跨越根命名空间,例如 sap.ui.require.toUrl(“…/”),或当资源名称以斜杠或相对段开头时,会引发错误。

    2024年02月21日
    浏览(39)
  • SAP UI5 walkthrough step4 XML Views

    SAPUI5 指出多种VIEW类型,包括XML,HTML,JavaScript 推荐使用XML,因为可读性更高 我们提前介绍一下MVC架构。 MVC是一种软件架构模式,它包括三个主要组件:模型(Model)、视图(View)和控制器(Controller)。这三个组件分别负责处理应用程序的数据、用户界面和用户输入。MVC的设计

    2024年02月04日
    浏览(30)
  • SAP UI5 Gateway Export 和 Client Export 的比较

    SAP UI5 SmartTable 控件支持两种类型的 Excel 导出操作: 客户端导出。这种类型的导出是默认类型。 SAP Gateway Foundation 的 SAP Gateway 导出。 SAP Gateway:如果有超过 100,000 个单元格或最多 500,000 个单元格,则显示警告,具体取决于会话和 ABAP 内存的配置。 SAP Client:根据使用的设备来

    2024年02月04日
    浏览(48)
  • 数栈UI5.0设计实战|B端表单这样设计,不仅美观还提效

    表单是B端产品中最常见的组件之一,主要⽤于数据收集、校验和提交。比如登陆流程的账号密码填写,注册流程的邮箱、用户名等信息填写,都是表单应用的常见案例,在数栈产品中也是出现频率⾮常⾼的组件。 尽管表单应用十分普遍,但在我们对旧版数栈产品进行调研时

    2024年02月04日
    浏览(28)
  • 袋鼠云数栈UI5.0设计实战|B端表单这样设计,不仅美观还提效

    我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。 本文作者:大喜 相关文章:袋鼠云出品!数栈UI 5.0全新体验升级,设计背后的故事 表单是B端产品中最常见的组件之一,主要⽤于数据

    2024年02月03日
    浏览(30)
  • 以前编写好能够正常运行的 SAP UI5 代码,几个月后忽然不能运行了该怎么办?

    以笔者本套教材为例,每一步骤的源代码都托管在本人 Github 仓库里,每次上传之前,都确保本地测试通过。 但笔者编写过程中发现,之前测试通过的代码,可能几个月之后再执行,就会遇到白屏现象,即应用无法正常加载,或者无法在调试模式下正常加载。 举个具体的例子

    2024年02月03日
    浏览(26)
  • 2021-09-02 常用git命令行

    根据预期目的来命令 拉取别人新的代码 把自己的代码提交到远程仓库。 根据具体操作来的命令 把本地工作区文件放到本地暂存区 把本地暂存区文件提交到本地分支 撤销本地工作区文件的修改 撤销暂存区文件的修改 删除未被跟踪的文件和文件夹 每个 Git 仓库中,都有一个

    2024年02月09日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包