文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

OpenHarmony北向-无上下状态栏的全屏沉浸式设置

2024-12-01 02:34

关注

想了解更多关于开源的内容,请访问:​

​51CTO 开源基础软件社区​

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

前言

最近在尝试学习OpenHarmony北向开发时碰到了一个问题,发现将应用运行在开发板上时,在看视频、玩游戏等场景下,用户往往希望隐藏状态栏、导航栏等不必要的系统窗口,从而获得更佳的沉浸式体验。在这里提供一种的解决方法。

demo效果

(前者为设置后,可见上下位置都填充了,达到了沉浸式全屏的效果)

具体步骤

在这里我们主要用到的是’@ohos.window’提供的管理窗口的一些基础能力,包括对当前窗口的创建、销毁、各属性设置,以及对各窗口间的管理调度。以下是OpenHarmony官方文档对应的链接​​OpenAtom OpenHarmony​​。

窗口沉浸式效果

要达到沉浸式效果,一般有三种方法

  1. 设置为全屏显示。
  2. 设置隐藏状态栏、导航栏。
  3. 设置全屏布局,并使导航栏、状态栏等系统窗口和应用主窗口保持主题协调一致。

我们在这里使用的是第一种方法。

window模块

在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: ')
})

全部代码


<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​​。

来源:51CTO开源基础软件社区内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯