SAP學習筆記 - 開發31 - 前端Fiori開發 Device Adaptation(設備自適應)

上一章講了Fiori開發中的 Responsiveness(響應式設計)。

SAP學習筆記 - 開發30 - 前端Fiori開發 Responsiveness(響應式設計)-CSDN博客

本章繼續學習Fiori 開發中的知識。

目錄

1,Device Adaptation(設備自適應)

1),HelloPanel.view.xml

2),Component.js

3),運行看效果

4),Detail.view.xml

5),Detail.controller.js?

6),運行看效果


下面是詳細內容。

1,Device Adaptation(設備自適應)

SAPUI5 SDK - Demo Kit

先來看一下具體改了什么文件,達到了什么效果。?

簡單來說就是實現折疊一部分組件,以節約空間。

1),HelloPanel.view.xml

<mvc:ViewcontrollerName="ui5.walkthrough.controller.HelloPanel"xmlns="sap.m"xmlns:mvc="sap.ui.core.mvc"><PanelheaderText="{i18n>helloPanelTitle}"class="sapUiResponsiveMargin"width="auto"expandable="{device>/system/phone}"expanded="{= !${device>/system/phone} }"><content><Buttonid="helloDialogButton"icon="sap-icon://world"text="{i18n>openDialogButtonText}"press=".onOpenDialog"class="sapUiSmallMarginEnd sapUiVisibleOnlyOnDesktop"/><Buttontext="{i18n>showHelloButtonText}"press=".onShowHello"class="myCustomButton"/><Inputvalue="{/recipient/name}"valueLiveUpdate="true"width="60%"/><FormattedTexthtmlText="Hello {/recipient/name}"class="sapUiSmallMargin sapThemeHighlight-asColor myCustomText"/></content></Panel>
</mvc:View>

在Panel 組件里面,用下面屬性來啟動自適應:

- expandable="{device>/system/phone}" =》在設備為 phone 的時候,會啟用折疊
- expanded="{= !${device>/system/phone} }"> =》該狀態指明該部分是否已經處于折疊狀態

-?sapUiVisibleOnlyOnDesktop =》該CSS 樣式用于只顯示于Desktop 模式下

2),Component.js

sap.ui.define(["sap/ui/core/UIComponent","sap/ui/model/json/JSONModel","sap/ui/Device"
], (UIComponent, JSONModel, Device) => {"use strict";return UIComponent.extend("ui5.walkthrough.Component", {metadata: {interfaces: ["sap.ui.core.IAsyncContentCreation"],manifest: "json"},init() {// call the init function of the parentUIComponent.prototype.init.apply(this, arguments);// set data modelconst oData = {recipient: {name: "World"}};const oModel = new JSONModel(oData);this.setModel(oModel);// set device modelconst oDeviceModel = new JSONModel(Device);oDeviceModel.setDefaultBindingMode("OneWay");this.setModel(oDeviceModel, "device");// create the views based on the url/hashthis.getRouter().initialize();}});
});

- 指定Device Model為單向模式(默認是雙向綁定)?

const oDeviceModel = new JSONModel(Device);
oDeviceModel.setDefaultBindingMode("OneWay");
this.setModel(oDeviceModel, "device");

3),運行看效果

其實就是指定一部分對象作為折疊對象,然后引入Device模塊,之后SAP Fiori就全幫你干了。

好像沒啥變化哈~

因為這是Desktop 中顯示,咱們給調成 phone 模式顯示

按 F12,然后調成 phone 模式

這樣就會顯示折疊

點一下可以展開折疊或再次折疊?

上面在列表上搞了個折疊,當是phone模式的時候,會自適應為折疊。

下面看看在明細畫面也做下優化。

4),Detail.view.xml

<mvc:ViewcontrollerName="ui5.walkthrough.controller.Detail"xmlns="sap.m"xmlns:core="sap.ui.core"xmlns:mvc="sap.ui.core.mvc"xmlns:wt="ui5.walkthrough.control"><Pagetitle="{i18n>detailPageTitle}"showNavButton="true"navButtonPress=".onNavBack"><ObjectHeadercore:require="{Date: 'sap/ui/model/type/Date',Currency: 'sap/ui/model/type/Currency'}"responsive="true"fullScreenOptimized="true"number="{parts: ['invoice>ExtendedPrice','view>/currency'],type: 'Currency',formatOptions: {showMeasure: false}}"numberUnit="{view>/currency}"intro="{invoice>ShipperName}"title="{invoice>ProductName}"><attributes><ObjectAttributetitle="{i18n>quantityTitle}"text="{invoice>Quantity}"/><ObjectAttributetitle="{i18n>dateTitle}"text="{path: 'invoice>ShippedDate',type: 'Date',formatOptions: {style: 'long',source: {pattern: 'yyyy-MM-ddTHH:mm:ss'}}}"/></attributes></ObjectHeader><wt:ProductRatingid="rating"class="sapUiSmallMarginBeginEnd"change=".onRatingChange"/></Page>
</mvc:View>

- 通過兩句就是啟動 ObjectHeader 組件的自適應模式

responsive="true"
fullScreenOptimized="true"

- 那么自適應對象是誰呢?就是這個 <attributes> 部分。

? 和上面在 HelloPanel.view.xml 作用在 panel 組件上,用的是不同的屬性。

<attributes>
? ? <ObjectAttribute
? ? ? ? title="{i18n>quantityTitle}"
? ? ? ? text="{invoice>Quantity}"/>
? ? <ObjectAttribute
? ? ? ? title="{i18n>dateTitle}"
? ? ? ? text="{
? ? ? ? ? ? path: 'invoice>ShippedDate',
? ? ? ? ? ? type: 'Date',
? ? ? ? ? ? formatOptions: {
? ? ? ? ? ? ? ? style: 'long',
? ? ? ? ? ? ? ? source: {
? ? ? ? ? ? ? ? ? ? pattern: 'yyyy-MM-ddTHH:mm:ss'
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }"/>
</attributes>

5),Detail.controller.js?

sap.ui.define(["sap/ui/core/mvc/Controller","sap/ui/core/routing/History","sap/m/MessageToast","sap/ui/model/json/JSONModel"
], (Controller, History, MessageToast, JSONModel) => {"use strict";return Controller.extend("ui5.walkthrough.controller.Detail", {onInit() {const oViewModel = new JSONModel({currency: "EUR"});this.getView().setModel(oViewModel, "view");const oRouter = this.getOwnerComponent().getRouter();oRouter.getRoute("detail").attachPatternMatched(this.onObjectMatched, this);},…});
});

這里沒啥,就是為了在詳細頁面加幾個字段,比如這個Currency,所以加的Model而已

6),運行看效果

點任意一條明細,顯示下面畫面

哦,我這個用的Remote Data,Order Date 在Meta Data 里沒暴漏出來。

我再加一個字段,然后再看看。

默認Destop Web 是這樣的:有幾個字段是靠右的

調成 phone 模式之后,就變成這樣的

其實就是適應手機屏幕尺寸,把一些字段給調在下面表示了?

官方資料里提供的是這兩種方式,在實際開發當中還是挺常用的。

其他的肯定還有,官方暫時沒提供Sample,以后有Sample再說。

以上就是本篇的全部內容。

更多SAP顧問業務知識請點擊下面目錄鏈接或東京老樹根的博客主頁

https://blog.csdn.net/shi_ly/category_12216766.html

東京老樹根-CSDN博客

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/909546.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/909546.shtml
英文地址,請注明出處:http://en.pswp.cn/news/909546.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

網絡的那些事——初級——OSPF(2)

前面說了OSPF的狀態機和一起簡單的OSPF配合&#xff0c;接下這章繼續寫OSPFV2 IP frr和OSPFV3. 什么是OSPF IP FRR? OSPF IP FRR&#xff08;Fast Reroute&#xff09;利用全網鏈路狀態數據庫&#xff0c;預先計算出備份路徑保存在轉發表中&#xff0c;以備在故障時提供流量保…

C++(初階)(二十一)——unordered_set和unordered_map

二十二&#xff0c;unordered_set和unordered_map的使用 1.unordered_set 1.1介紹 c11 template<class Key,class Hash std::hash<Key>,class KeyEqual std::equal_to<Key>,class Allocator std::allocator<Key> > class unordered_set;c17 na…

Java面試題:分布式ID時鐘回撥怎么處理?序列號耗盡了怎么辦?

歡迎來到啾啾的博客&#x1f431;。 記錄學習點滴。分享工作思考和實用技巧&#xff0c;偶爾也分享一些雜談&#x1f4ac;。 有很多很多不足的地方&#xff0c;歡迎評論交流&#xff0c;感謝您的閱讀和評論&#x1f604;。 目錄 引言1 分布式ID2 問題2.1 時鐘回撥2.1.1 毫秒級時…

影視劇學經典系列-梁祝-陶淵明《感士不遇賦并序》

1、背景 《感士不遇賦并序》是東晉詩人陶淵明創作的一篇抒發懷才不遇之慨的辭賦作品。受董仲舒《士不遇賦》和司馬遷《悲士不遇賦》啟發&#xff0c;陶淵明借古喻今&#xff0c;批判“真風告逝&#xff0c;大偽斯興”的亂世。社會批判?以“密網裁而魚駭&#xff0c;宏羅制而鳥…

Spring Cloud Gateway 全面學習指南

Spring Cloud Gateway 全面學習指南 學習目錄 第一部分&#xff1a;基礎概念與核心架構 API網關概述與Spring Cloud Gateway簡介Spring Cloud Gateway核心架構與工作原理Spring Cloud Gateway與Zuul的對比分析Spring Cloud Gateway核心組件詳解 第二部分&#xff1a;基礎配…

蛋白分析工具和數據庫

UniProt&#xff08;Universal Protein Resource&#xff09;是一個綜合性的蛋白質數據庫&#xff0c;提供了全球范圍內已知的蛋白質序列和功能信息。其中&#xff0c;UniProtKB&#xff08;UniProt Knowledgebase&#xff09;是最核心的組成部分&#xff0c;包含了經過注釋和分…

Docker -- 快速入門

鏡像與容器 當我們使用Docker安裝應用時&#xff0c;Docker會自動搜索并下載應用鏡像&#xff08;image&#xff09;。鏡像不僅包含應用本身&#xff0c;還包含應用運行所需要的環境&#xff0c;配置、系統函數庫。Docker會在運行鏡像時創建一個隔離環境&#xff0c;稱為容器&…

輸入數量未知如何設置輸入

在 C 的算法題中&#xff0c;如果你不知道輸入數據有多少組&#xff08;即測試用例的數量未知&#xff09;&#xff0c;通常的處理方式是使用 循環讀取輸入直到文件結束 &#xff08;EOF&#xff09;。這類題目常見于在線評測系統&#xff08;如 LeetCode、牛客網、POJ 等&…

如何在Windows上使用qemu安裝ubuntu24.04服務器?

2025年6月15日&#xff0c;周日晚上 在Windows上使用QEMU安裝Ubuntu 24.04需要完成環境配置、鏡像準備、虛擬機創建及系統安裝等步驟。以下是綜合多個搜索結果后的詳細指南&#xff1a; 1. 安裝QEMU環境 下載QEMU Windows版 從QEMU官網下載64位安裝包&#xff08;如qemu-w64-s…

前端開發面試題總結-vue2框架篇(二)

Vue2高頻問答 一、為什么 Vue 的 data 屬性必須聲明為返回一個初始數據的函數? 回答重點&#xff1a; Vue 的 data 屬性聲明成一個返回初始數據的函數&#xff0c;是為了確保每個組件實例都有獨立的狀態。通過這種方式&#xff0c;避免了組件使用相同的數據對象導致的狀態共…

Web第二次方向考核復盤

一、簡答題 1. &#xff08;1&#xff09;為什么要清除浮動&#xff1f; 答&#xff1a;當子元素浮動時會脫離文檔流&#xff0c;父元素無法正確計算子元素高度導致高度、邊框異常顯示。同時會影響后續文檔流布局。 <style>.box1 {border: solid 2px #000;}.child1 {fl…

Linux入門(十八)read函數

read 讀取控制臺輸入 基本語法 read 選項 參數 選項 -p 指定讀取值時的提示符 -t 指定讀取值時等待的時間&#xff08;秒&#xff09;&#xff0c;如果沒有在指定的時間內輸入&#xff0c;就不再等待了 參數 變量&#xff1a;指定讀取值的變量名 實例&#xff1a; 1、讀取控制…

Python 文件操作詳解

文章目錄 Python 文件操作詳解一、文件操作的基本流程二、文件打開模式詳解1. 基本模式2. 擴展模式3. 模式組合示例 三、文件操作方法大全1. 打開和關閉文件2. 讀取文件內容3. 寫入文件內容4. 文件指針操作 四、文件編碼處理五、二進制文件操作六、常見文件操作場景1. 文件內容…

用AI配合MCP快速生成n8n工作流

在數字化時代的浪潮中&#xff0c;AI技術正以前所未有的速度改變著我們的生活和工作方式。從智能家居到智能辦公&#xff0c;從數據分析到自動化流程&#xff0c;AI的應用場景無處不在。今天&#xff0c;我們將帶你走進一個充滿創新與效率的世界&#xff0c;探索如何通過AI大眼…

ArkUI-X框架LogInterface使用指南

ArkUI-X框架支持日志攔截能力&#xff0c;Android側提供原生接口&#xff0c;用于注入LogInterface接口&#xff0c;框架日志及ts日志通過該接口輸出&#xff0c;本文的核心內容是介紹如何在Android平臺上有效利用ArkUI-X框架的LogInterface攔截日志。 Android平臺創建ArkUI-X…

函數重載與函數模板

函數重載與函數模板 函數重載 函數組成 返回類型 函數名稱(參數列表){函數體}函數簽名&#xff1a;函數名稱(參數列表) C 允許定義同名函數&#xff0c;前提是它們具有不同的簽名。這被稱為函數重載 。 C 編譯器通過檢查調用中參數的數量、類型和順序來選擇要調用的適當函…

NLP學習路線圖(四十六):可解釋性

在自然語言處理(NLP)技術重塑人機交互、信息檢索甚至司法決策的今天,一個尖銳的問題愈發凸顯:當模型在文本分類中判定你的貸款申請被拒,或在簡歷篩選中將你排除,你是否有權追問一句——“為什么?” 一、黑箱迷霧:NLP模型的不透明困境 現代NLP的核心驅動力——深度神經…

uniapp的app項目,在華為pad上運行,頁面顯示異常

最開始為了好調試&#xff0c;運行成h5在瀏覽器調試的&#xff0c;調完以后&#xff0c;放到pad上。。。天塌了&#xff0c;所有頁面異常&#xff0c;感覺被放大了好多&#xff0c;而且頁面很亂。。。 查了很多資料&#xff0c;說把px改為rpx&#xff0c;好&#xff0c;全部改…

Linux中的連接符

Linux中的&&連接符 和其它語言類似&#xff0c;在Shell中&#xff0c;&&是一個邏輯運算符&#xff0c;表示邏輯AND&#xff0c;用于連接多個條件表達式 不同的是&#xff0c;在Linux系統中&#xff0c;&&不僅可以連接條件表達式&#xff0c;而且還能連…

裝飾模式Decorator Pattern

模式定義 動態地給對象增加額外的職責 對象結構型模式 模式結構 Component&#xff1a;抽象構件 ConcreteComponent&#xff1a; 具體構件 Decorator&#xff1a;抽象裝飾類 ConcreteDecorator&#xff1a; 具體裝飾類 抽象裝飾類代碼 public class Decorator extends Compo…