成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

輕松玩轉平行視界(下)

系統
平行視界是多窗口交互服務的其中一種,平行視界是以界面為基本單位實現應用內雙窗口顯示的系統側解決方案。

[[434410]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

前言

先來回顧一下上一篇文章的easygo.json配置文件的相關元素的描述:【木棉花】輕松玩轉平行視界(上)

  1.   "easyGoVersion": 必選,固定值為"1.0"
  2.   "client": 必選,該程序的應用包名, 
  3.   "logicEntities": [ 
  4.     { 
  5.       "head": { 
  6.         "function": 必選,調用組件名,固定值為"magicwindow"
  7.         "required": 必選,預留字段,固定值為"true" 
  8.       }, 
  9.       "body": { 
  10.         "mode": 必選,基礎分屏模式."0":購物模式,abilityPairs節點不生效;"1":自定義模式(包含導航模式), 
  11.         "abilityPairs": [自定義模式下必選,配置從from頁面到to頁面的分屏顯示 
  12.           { 
  13.             "from": 自定義模式下必選,AbilityA的包名, 
  14.             "to": 自定義模式下必選,AbilityB的包名, 
  15.           }表示A上啟動B,觸發分屏(A左B右) 
  16.         ], 
  17.         "Abilities": [可選,應用Page Ability屬性列表, 
  18.           { 
  19.             "name": 可選,Page Ability包名, 
  20.             "defaultFullScreen": 可選,Page Ability是否支持默認以全屏啟動."true": 支持;,"false": 不支持 
  21.           }, 
  22.           { 
  23.             "name": 可選,Page Ability包名, 
  24.             "defaultFullScreen": 可選,Page Ability是否支持默認以全屏啟動."true": 支持;,"false": 不支持 
  25.           } 
  26.         ], 
  27.         "UX": {可選,頁面UX控制配置 
  28.           "isDraggable": 可選,是否支持分屏窗口拖動(僅針對平板產品生效)."true": 支持;,"false": 不支持(缺省值為false
  29.         } 
  30.       } 
  31.     } 
  32.   ] 

導航模式

代碼文件

代碼文件結構如下:

【木棉花】輕松玩轉平行視界(下)-鴻蒙HarmonyOS技術社區

下面只給出部分重點代碼

FirstAbilitySlice.java:

  1. public class FirstAbilitySlice extends AbilitySlice { 
  2.     @Override 
  3.     public void onStart(Intent intent) { 
  4.         super.onStart(intent); 
  5.         super.setUIContent(ResourceTable.Layout_ability_first); 
  6.  
  7.         findComponentById(ResourceTable.Id_btn_yes).setClickedListener(new Component.ClickedListener() { 
  8.             @Override 
  9.             public void onClick(Component component) { 
  10.                 getContext().setDisplayOrientation(AbilityInfo.DisplayOrientation.LANDSCAPE);//申請橫屏方向可進入全屏顯示狀態 
  11.             } 
  12.         }); 
  13.  
  14.         findComponentById(ResourceTable.Id_btn_no).setClickedListener(new Component.ClickedListener() { 
  15.             @Override 
  16.             public void onClick(Component component) { 
  17.                 getContext().setDisplayOrientation(AbilityInfo.DisplayOrientation. PORTRAIT);//調用申請豎屏方向即可退出全屏狀態 
  18.             } 
  19.         }); 
  20.  
  21.         findComponentById(ResourceTable.Id_btn2).setClickedListener(new Component.ClickedListener() { 
  22.             @Override 
  23.             public void onClick(Component component) { 
  24.                 Operation operation = new Intent.OperationBuilder() 
  25.                         .withDeviceId(""
  26.                         .withBundleName(getBundleName()) 
  27.                         .withAbilityName(SecondAbility.class.getName()) 
  28.                         .build(); 
  29.                 intent.setOperation(operation); 
  30.                 startAbility(intent); 
  31.             } 
  32.         }); 
  33.  
  34.         findComponentById(ResourceTable.Id_btn3).setClickedListener(new Component.ClickedListener() { 
  35.             @Override 
  36.             public void onClick(Component component) { 
  37.                 Operation operation = new Intent.OperationBuilder() 
  38.                         .withDeviceId(""
  39.                         .withBundleName(getBundleName()) 
  40.                         .withAbilityName(ThridAbility.class.getName()) 
  41.                         .build(); 
  42.                 intent.setOperation(operation); 
  43.                 startAbility(intent); 
  44.             } 
  45.         }); 
  46.  
  47.         findComponentById(ResourceTable.Id_btn_back).setClickedListener(new Component.ClickedListener() { 
  48.             @Override 
  49.             public void onClick(Component component) { 
  50.                 terminateAbility(); 
  51.             } 
  52.         }); 
  53.     } 
  54.  
  55.     @Override 
  56.     public void onActive() { 
  57.         super.onActive(); 
  58.     } 
  59.  
  60.     @Override 
  61.     public void onForeground(Intent intent) { 
  62.         super.onForeground(intent); 
  63.     } 

config.json配置文件的module對象中新增metaData:

  1. "metaData": { 
  2.       "customizeData": [ 
  3.         { 
  4.         "name""EasyGoClient"
  5.         "value""true" 
  6.         } 
  7.       ] 
  8.     } 

在src -> main -> resources -> rawfile目錄下增加easygo.json配置文件:

  1.   "easyGoVersion""1.0"
  2.   "client""com.test.mydemo2"
  3.   "logicEntities": [ 
  4.     { 
  5.       "head": { 
  6.         "function""magicwindow"
  7.         "required""true" 
  8.       }, 
  9.       "body": { 
  10.         "mode""1"
  11.         "abilityPairs": [ 
  12.           { 
  13.             "from""com.test.mydemo2.NavigationAbility"
  14.             "to""*" 
  15.           } 
  16.         ], 
  17.         "Abilities": [ 
  18.           { 
  19.             "name""com.test.mydemo2.MainAbility"
  20.             "defaultFullScreen""false" 
  21.           }, 
  22.           { 
  23.             "name""com.test.mydemo2.NavigationAbility"
  24.             "defaultFullScreen""false" 
  25.           }, 
  26.           { 
  27.             "name""com.test.mydemo2.FirstAbility"
  28.             "defaultFullScreen""false" 
  29.           }, 
  30.           { 
  31.             "name""com.test.mydemo2.SecondAbility"
  32.             "defaultFullScreen""false" 
  33.           }, 
  34.           { 
  35.             "name""com.test.mydemo2.ThridAbility"
  36.             "defaultFullScreen""false" 
  37.           } 
  38.         ], 
  39.         "UX": { 
  40.           "isDraggable""true" 
  41.         } 
  42.       } 
  43.     } 
  44.   ] 

上述代碼easygo.json配置文件的相關元素的描述如下:

  1.   "easyGoVersion":  
  2.   "client":  
  3.   "logicEntities": [ 
  4.     { 
  5.       "head": { 
  6.         "function":  
  7.         "required":  
  8.       }, 
  9.       "body": { 
  10.         "mode":  
  11.         "abilityPairs": [ 
  12.           { 
  13.             "from": 自定義模式下必選,AbilityA的包名, 
  14.             "to""*"表示任意Page Ability, 
  15.           }表示A上啟動任意Page Ability,觸發分屏(A左任意右) 
  16.         ], 
  17.         "Abilities": [ 
  18.           { 
  19.             "name":  
  20.             "defaultFullScreen":  
  21.           } 
  22.         ], 
  23.         "UX": { 
  24.           "isDraggable":  
  25.         } 
  26.       } 
  27.     } 
  28.   ] 

運行效果

平板橫屏的運行效果如下:

【木棉花】輕松玩轉平行視界(下)-鴻蒙HarmonyOS技術社區

小結

導航模式是一種系統提供的“分欄”,能幫助用戶在應用內高效地來回切換。

從上述運行效果可以發現導航模式有三個特點:

1. 右半屏總是最后一個窗口。

2. 左邊固定導航主頁,左點右出,右點右出。

3. 左邊觸發的返回,左右分屏中的所有界面都將退出;右邊觸發的返回,右邊回到上一層級,左邊保持不變。

全屏顯示Page Ability

另外關于平行視界狀態下,部分Page Ability希望以全屏來顯示,分別有動態方法和靜態方法:

動態方法:

全屏顯示:調用如下接口申請橫屏方向可進入全屏顯示狀態:

  1. getContext().setDisplayOrientation(AbilityInfo.DisplayOrientation.LANDSCAPE); 

 退出全屏:調用申請豎屏方向即可退出全屏狀態:

  1. getContext().setDisplayOrientation(AbilityInfo.DisplayOrientation. PORTRAIT); 

 靜態方法:

在easygo.json文件的Abilities屬性中,將Page Ability的defaultFullScreen配置為true,即可實現Page Ability默認以全屏顯示:

  1.        "name""com.test.mydemo2.MainAbility"
  2.        "defaultFullScreen""true" 
  3.      } 

 在config.json文件的Abilities屬性中,將Page Ability的orientation配置為landscape(橫屏),Page Ability會一直以全屏狀態顯示:

  1.         "orientation""landscape"
  2.         "visible"true
  3.         "name""com.test.mydemo2.MainAbility"
  4.         "icon""$media:icon"
  5.         "description""$string:mainability_description"
  6.         "label""$string:entry_MainAbility"
  7.         "type""page"
  8.         "launchType""standard" 
  9.       } 

購物模式

代碼文件

代碼文件結構如下:

【木棉花】輕松玩轉平行視界(下)-鴻蒙HarmonyOS技術社區

下面只給出部分重點代碼

config.json配置文件的module對象中新增metaData:

  1. "metaData": { 
  2.       "customizeData": [ 
  3.         { 
  4.         "name""EasyGoClient"
  5.         "value""true" 
  6.         } 
  7.       ] 
  8.     } 

 在src -> main -> resources -> rawfile目錄下增加easygo.json配置文件:

  1.   "easyGoVersion""1.0"
  2.   "client""com.test.mydemo3"
  3.   "logicEntities": [ 
  4.     { 
  5.       "head": { 
  6.         "function""magicwindow"
  7.         "required""true" 
  8.       }, 
  9.       "body": { 
  10.         "mode""0"
  11.         "transActivities": [ 
  12.           "com.test.mydemo3.NavigationAbility"
  13.           "com.test.mydemo3.FirstAbility"
  14.           "com.test.mydemo3.SecondAbility" 
  15.         ], 
  16.         "Abilities": [ 
  17.           { 
  18.             "name""com.test.mydemo3.MainAbility"
  19.             "defaultFullScreen""false" 
  20.           }, 
  21.           { 
  22.             "name""com.test.mydemo3.NavigationAbility"
  23.             "defaultFullScreen""false" 
  24.           }, 
  25.           { 
  26.             "name""com.test.mydemo3.FirstAbility"
  27.             "defaultFullScreen""false" 
  28.           }, 
  29.           { 
  30.             "name""com.test.mydemo3.SecondAbility"
  31.             "defaultFullScreen""false" 
  32.           }, 
  33.           { 
  34.             "name""com.test.mydemo3.ThridAbility"
  35.             "defaultFullScreen""false" 
  36.           } 
  37.         ], 
  38.         "UX": { 
  39.           "isDraggable""true"
  40.           "supportLock""true" 
  41.         } 
  42.       } 
  43.     } 
  44.   ] 

上述代碼easygo.json配置文件的相關元素的描述如下:

  1.   "easyGoVersion"
  2.   "client"
  3.   "logicEntities": [ 
  4.     { 
  5.       "head": { 
  6.         "function"
  7.         "required"
  8.       }, 
  9.       "body": { 
  10.         "mode": 0":購物模式, 
  11.         "transActivities": [ 
  12.           過渡頁面列表 
  13.         ], 
  14.         "Abilities": [ 
  15.           { 
  16.             "name"
  17.             "defaultFullScreen"
  18.           } 
  19.         ], 
  20.         "UX": { 
  21.           "isDraggable"
  22.           "supportLock":, 可選,是否支持應用內用戶鎖定功能."true": 支持鎖定,;,"false": 不支持(缺省值為false
  23.         } 
  24.       } 
  25.     } 
  26.   ] 

運行效果

平板橫屏的運行效果如下:

【木棉花】輕松玩轉平行視界(下)-鴻蒙HarmonyOS技術社區

小結

購物模式能有效解決寬屏設備上的顯示適配問題,適用于購物類的場景和應用。

從上述運行效果可以發現購物模式有三個特點:

1. 左點右出。

2. 右邊點擊啟動新的窗口,把當前內容往左推,新的內容在右邊展示。

3. 左邊觸發的返回,左右側窗口內的界面都將退出上一層級或首頁;右邊觸發的返回,右側窗口回到上一層級,不影響左邊的頁面。

后臺鎖定

應用啟用平行視界后,特定的適合多任務并行/有多任務并行需求的場景,可使用后臺鎖定。

可通過以下進行配置:

  1. "UX": { 
  2.         "supportLock""true" 
  3.       } 

 雙窗口顯示狀態會顯示鎖定按鈕,用戶點擊后可以進行鎖定和解鎖操作;鎖定后,左右窗口不再關聯,即左側打開新窗口在左側顯示,右側打開新窗口在右側顯示。例如普通購物模式下,點擊右側屏幕的內容,會把右側內容向左推;直播場景鎖定后,直播固定在左側顯示,點擊右側內容,更換右側的顯示內容。

其它

  1.   "easyGoVersion": , 
  2.   "client": , 
  3.   "logicEntities": [ 
  4.     { 
  5.       "head": { 
  6.         "function": , 
  7.         "required"
  8.       }, 
  9.       "body": { 
  10.         "mode""0"
  11.         "abilityPairs": [ 
  12.           { 
  13.             "from": , 
  14.             "to"
  15.           } 
  16.         ], 
  17.         "defaultDualAbilities": {可選,應用冷啟動默認打開首頁雙屏配置 
  18.           "mainPages": Page Ability包名,冷啟動應用打開此頁面時,系統在左屏自動啟動的頁面, 
  19.           "relatedPage": Page Ability包名,冷啟動應用打開此頁面時,系統在右屏自動啟動的頁面 
  20.         }, 
  21.         "transActivities": [ 
  22.  
  23.         ], 
  24.         "Abilities": [ 
  25.           { 
  26.             "name": , 
  27.             "defaultFullScreen"
  28.           } 
  29.         ], 
  30.         "UX": { 
  31.           "supportRotationUxCompat": 可選,是否開啟窗口縮放,用于提高轉屏應用UX顯示兼容性(僅針對平板產品生效)."true": 支持;"false": 不支持(缺省值為false), 
  32.           "isDraggable": , 
  33.           "supportVideoFullscreen": 可選,是否支持視頻全屏(僅針對平板產品生效)."true": 支持;"false": 不支持(缺省值為false), 
  34.           "supportDraggingToFullScreen": 可選,是否支持在分屏和全屏之間拖動切換."ALL": 所有設備上支持此功能;"PAD": 僅平板產品上支持此功能;,"FOLD": 僅折疊屏上支持此功能, 
  35.           "supportLock"
  36.         } 
  37.       } 
  38.     } 
  39.   ] 

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2021-11-10 16:07:01

鴻蒙HarmonyOS應用

2021-11-08 10:20:48

鴻蒙HarmonyOS應用

2020-09-24 10:57:12

編程函數式前端

2023-08-18 14:39:02

2021-11-15 10:15:37

鴻蒙HarmonyOS應用

2010-07-09 12:09:34

IT運維Mocha BSM摩卡軟件

2010-09-01 10:09:32

CSS樣式

2018-03-15 14:07:17

潤乾Excel行列轉換

2013-11-01 10:41:52

Windows 8.1應用技巧

2015-08-12 10:54:22

架構云

2010-09-06 12:46:05

無線網絡

2014-08-19 09:10:45

IT運維

2010-05-07 10:47:18

微軟Live照片庫

2011-05-04 14:00:02

打印機Word打印

2019-03-15 11:07:35

華為云

2021-10-28 14:58:15

鴻蒙HarmonyOS應用

2011-05-04 09:56:54

打印機Word打印

2010-01-15 10:14:21

C++ Builder

2025-06-03 01:25:00

2011-07-14 13:28:24

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91视频精选 | 久久91| 精品久久久久久久久久久久久久 | 久久久精品一区 | 欧美综合一区 | 国产精品久久久久久久久免费高清 | 中文字幕一区二区三区精彩视频 | 午夜欧美 | 亚洲在线看 | 国产精品美女久久久av超清 | 91在线观看视频 | 午夜爽爽男女免费观看hd | 91网在线观看 | 亚洲成人久久久 | 国产高清视频一区 | 欧美电影免费观看高清 | 免费视频久久 | 亚洲精品在线免费观看视频 | 天天操天天玩 | 中文字幕在线第一页 | 最新中文字幕在线 | 一级一片在线观看 | 久久精品国产一区二区三区不卡 | 国产一区视频在线 | 国产日韩欧美在线观看 | 久久精品国产一区二区电影 | 欧美精品一区二区三区四区五区 | 欧美激情va永久在线播放 | 亚洲导航深夜福利涩涩屋 | 国产精品久久久久aaaa九色 | 91国内精品久久 | 国产成人免费视频 | 国产精品久久久久久婷婷天堂 | a级大片免费观看 | 国产三级电影网站 | 羞羞的视频免费观看 | 欧美国产91 | 日韩精品免费 | 日韩在线成人 | 欧美日韩精品影院 | 亚洲久在线 |