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

OpenHarmony北向-無上下狀態欄的全屏沉浸式設置

系統 OpenHarmony
在這里我們主要用到的是’@ohos.window’提供的管理窗口的一些基礎能力,包括對當前窗口的創建、銷毀、各屬性設置,以及對各窗口間的管理調度。

??想了解更多關于開源的內容,請訪問:???

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

前言

最近在嘗試學習OpenHarmony北向開發時碰到了一個問題,發現將應用運行在開發板上時,在看視頻、玩游戲等場景下,用戶往往希望隱藏狀態欄、導航欄等不必要的系統窗口,從而獲得更佳的沉浸式體驗。在這里提供一種的解決方法。

demo效果

#盲盒+碼#【FFH】OpenHarmony北向-無上下狀態欄的全屏沉浸式設置-開源基礎軟件社區

#盲盒+碼#【FFH】OpenHarmony北向-無上下狀態欄的全屏沉浸式設置-開源基礎軟件社區

(前者為設置后,可見上下位置都填充了,達到了沉浸式全屏的效果)

具體步驟

在這里我們主要用到的是’@ohos.window’提供的管理窗口的一些基礎能力,包括對當前窗口的創建、銷毀、各屬性設置,以及對各窗口間的管理調度。以下是OpenHarmony官方文檔對應的鏈接??OpenAtom OpenHarmony??。

窗口沉浸式效果

要達到沉浸式效果,一般有三種方法

  1. 設置為全屏顯示。
  2. 設置隱藏狀態欄、導航欄。
  3. 設置全屏布局,并使導航欄、狀態欄等系統窗口和應用主窗口保持主題協調一致。

我們在這里使用的是第一種方法。

window模塊

在OpenHarmony中,窗口模塊主要負責以下職責:

  • 提供應用和系統界面的窗口對象。應用開發者通過窗口加載UI界面,實現界面顯示功能。
  • 組織不同窗口的顯示關系,即維護不同窗口間的疊加層次和位置屬性。應用和系統的窗口具有多種類型,不同類型的窗口具有不同的默認位置和疊加層次(Z軸高度)。同時,用戶操作也可以在一定范圍內對窗口的位置和疊加層次進行調整。
  • 提供窗口裝飾。窗口裝飾指窗口標題欄和窗口邊框。窗口標題欄通常包括窗口最大化、最小化及關閉按鈕等界面元素,具有默認的點擊行為,方便用戶進行操作;窗口邊框則方便用戶對窗口進行拖拽縮放等行為。窗口裝飾是系統的默認行為,開發者可選擇啟用/禁用,無需關注UI代碼層面的實現。
  • 提供窗口動效。在窗口顯示、隱藏及窗口間切換時,窗口模塊通常會添加動畫效果,以使各個交互過程更加連貫流暢。在OpenHarmony中,應用窗口的動效為默認行為,不需要開發者進行設置或者修改。
  • 指導輸入事件分發。即根據當前窗口的狀態或焦點,進行事件的分發。觸摸和鼠標事件根據窗口的位置和尺寸進行分發,而鍵盤事件會被分發至焦點窗口。應用開發者可以通過窗口模塊提供的接口設置窗口是否可以觸摸和是否可以獲焦。

導入模塊

首先我們導入能力模塊。

import window from '@ohos.window';

獲取窗口對象

然后獲取當前應用內最后顯示的窗口的promise對象。

var windowClass = null;
let promise = window.getTopWindow();

具體實現

我們在這個Promise異步回調中我們利用’windowClass.setFullScreen()'進行沉浸式全屏設置。

promise.then((data)=> {
windowClass = data;
console.info('Succeeded in obtaining the top window. Data: ' + JSON.stringify(data))
}).then(()=>{
windowClass.setFullScreen(true)
this.windowFull=true
console.info('Succeeded in obtaining the top window. Data: ')
})

全部代碼

<!--index.html-->
<div class="container" onclick="windowClick">
<text class="title">
{{ $t('strings.hello') }} ` title `
</text>
</div>
//index.js
import window from '@ohos.window';

export default {
data: {
title: "",
windowFull:false//flag
},
onInit() {
this.title = this.$t('strings.world');
},
windowClick(){
//點擊觸發全屏
var windowClass = null;
let promise = window.getTopWindow();
promise.then((data)=> {
windowClass = data;
console.info('Succeeded in obtaining the top window. Data: ' + JSON.stringify(data))
}).then(()=>{
if(this.windowFull===true){
windowClass.setFullScreen(false)//取消全屏
this.windowFull=false
}else{
windowClass.setFullScreen(true)//全屏
this.windowFull=true
}
console.info('Succeeded in obtaining the top window. Data: ')
})
}
}

總結

學習道路上的一點點小記錄。

??想了解更多關于開源的內容,請訪問:???

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??。

責任編輯:jianghua 來源: 51CTO開源基礎軟件社區
相關推薦

2017-02-17 11:00:57

狀態欄Android

2016-11-29 11:20:08

Android

2017-12-05 12:44:57

Android沉浸式狀態欄APP

2021-08-09 20:29:27

Android沉浸式狀態欄

2023-05-30 14:50:20

界面開發鴻蒙

2023-06-13 15:00:54

環境搭建鴻蒙

2014-06-06 14:03:13

iOS狀態欄提示控件原理

2013-07-18 16:09:10

自定義iOS狀態欄iOS開發iOS學習

2015-02-12 14:49:36

CGToast狀態欄提示Status

2022-12-13 15:47:19

Full SDK鴻蒙

2012-12-24 14:42:48

iOS自定義狀態欄

2013-11-20 15:08:32

iOS開發狀態欄

2016-07-14 16:42:13

2016-11-18 08:41:23

2022-08-08 19:46:26

ArkUI鴻蒙

2022-02-22 09:16:41

AndroidWindows狀態欄

2021-06-15 15:04:38

Android 12安卓通話

2021-06-15 15:28:31

谷歌Android開發

2022-02-21 15:05:09

LauncherOpenHarmon鴻蒙

2011-06-16 11:15:04

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 羞羞视频免费观 | 最新国产福利在线 | 国产美女在线观看 | 欧美精品一区在线观看 | 久久久久久精 | 亚洲在线高清 | 欧美一区二区三区免费在线观看 | 欧美日韩亚 | 蜜臀av日日欢夜夜爽一区 | 久久精品免费一区二区 | 特a毛片 | 欧美一区二区激情三区 | 一级欧美一级日韩片免费观看 | 欧美精品第一区 | av毛片免费 | 日本久久久久久 | 一区二区福利视频 | 成人黄色在线观看 | 黄色毛片免费看 | 国产一级一级国产 | 久草免费在线视频 | 欧美综合一区 | 亚洲一二三视频 | 亚洲精久久 | 国产午夜精品一区二区三区四区 | 神马九九 | 精品中文视频 | 欧美三区视频 | 国产91精品网站 | 日韩av免费看| 久久99深爱久久99精品 | 国产丝袜一区二区三区免费视频 | 国产精品日韩欧美一区二区三区 | 亚洲高清免费视频 | 欧美在线一区视频 | 中文字幕一区二区三区四区五区 | 国产精品久久久久久久粉嫩 | 欧美精品一区二区免费 | 特黄小视频| 欧美性一区二区三区 | 成人午夜精品一区二区三区 |