大家好,今天跟大家分享一下仓颉开发语言中的全屏模式。

和ArkTS一样,仓颉的新建项目默认是非全屏模式的,如果你的应用颜色比较丰富,就会发现屏幕上方和底部的留白,这是应用自动避让了屏幕上方摄像头区域和底部的导航条区域。

但是通常我们不需要这些留白,而是希望应用占满整个屏幕,这时候需要用到沉浸模式,下面为大家分享具体的实现过程。

首先,来到应用的main_ability.cj文件的onWindowStageCreate方法下,设置全屏模式我们要先获取到主窗口,然后设置全屏,实现代码如下:

windowStage.getMainWindow().setWindowLayoutFullScreen(true)

这时候运行程序,你会发现屏幕已经被应用占满了。但是新的问题出现了,你不让系统自动避让的话,就要自己避让上下方的摄像头和导航条区域。

要避让这些区域,首先要知道它们的尺寸,主要是高度。还是在刚才的方法中,获取顶部避让区域的方法如下:

let topArea = windowStage.getMainWindow().getWindowAvoidArea(AvoidAreaType.TYPE_SYSTEM)
let topAreaHeight = topArea.topRect.height

topAreaHeight就是顶部避让区域的高度尺寸,底部避让区域的获取方式稍有不同,需要单独获取:

let bottomArea = windowStage.getMainWindow().getWindowAvoidArea(AvoidAreaType.TYPE_NAVIGATION_INDICATOR)
let bottomAreaHeight = bottomArea.bottomRect.height

然后你可以将topAreaHeight和bottomAreaHeight保存,在应用其他地方获取使用:

AppStorage.setOrCreate('topHeight',topAreaHeight.toString())
AppStorage.setOrCreate('bottomHeight',bottomAreaHeight.toString())

这里大家尽量保存字符串类型,因为幽蓝君在使用Int64类型的时候遇到了问题。

这样的话就会得到一个占满屏幕又不被遮挡的应用。

另外,有些情况下大家可能会需要用到屏幕的尺寸,获取屏幕尺寸的方法如下:

let windowRect =  windowStage.getMainWindow().getWindowProperties().windowRect
AppLog.info('屏幕宽度:'+ windowRect.width.toString())
AppLog.info('屏幕高度:'+ windowRect.height.toString())

最后要注意,以上代码获取到的尺寸单位都是px,大家使用的时候要按需转换。

今天的内容就是这些,感谢阅读。##HarmonyOS语言##仓颉##购物#

详解鸿蒙Next仓颉开发语言中的全屏模式的更多相关文章

  1. 详解Kafka: 大数据开发最火的核心技术

    详解Kafka: 大数据开发最火的核心技术   架构师技术联盟 2019-06-10 09:23:51 本文共3268个字,预计阅读需要9分钟. 广告 大数据时代来临,如果你还不知道Kafka那你就真 ...

  2. vagrant三网详解(团队/个人开发必看) 转

    vagrant三网详解(团队/个人开发必看)   Vagrant 中一共有三种网络配置,下面我们将会详解三种网络配置各自优缺点. 一.端口映射(Forwarded port) 顾名思义是指把宿主计算机 ...

  3. 一阶RC高通滤波器详解(仿真+matlab+C语言实现)

    文章目录 预备知识 关于电容 HPF的推导 simulink 仿真 simulink 运行结果 matlab 实现 matlab 运行结果 C语言实现 如果本文帮到了你,帮忙点个赞: 如果本文帮到了你 ...

  4. Spark详解(04) - Spark项目开发环境搭建

    类别    [随笔分类]Spark Spark详解(04) - Spark项目开发环境搭建 Spark Shell仅在测试和验证程序时使用的较多,在生产环境中,通常会在IDEA中编制程序,然后打成Ja ...

  5. 详解如何将MathType嵌入word中

    将MathType嵌入word中的过程就是word插入对象的过程,插入对象是word软件中最常见的操作,MathType公式编辑器与所有的Office程序(OLE技术)都有很好的兼容性,本教程将详解如 ...

  6. Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理

    Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理 转自:https://www.jianshu.com/p/2b71ea919d49 本系列文章首发于我的个人博 ...

  7. Java网络编程和NIO详解4:浅析NIO包中的Buffer、Channel 和 Selector

    Java网络编程与NIO详解4:浅析NIO包中的Buffer.Channel 和 Selector 转自https://www.javadoop.com/post/nio-and-aio 本系列文章首 ...

  8. 一阶RC低通滤波器详解(仿真+matlab+C语言实现)

    文章目录 1 预备知识 2 simulink 仿真 3 simulink 运行结果 4 matlab实现 5 matlab运行结果 6 C语言实现 7 C语言运行结果 如果本文帮到了你,帮忙点个赞: ...

  9. 详解微信小程序开发(项目从零开始)

    一.序 微信小程序,估计大家都不陌生,现在应用场景特别多.今天就系统的介绍一下小程序开发.注意,这里只从项目代码上做解析,不涉及小程序如何申请.打包.发布的东西.(这些跟着微信官方文档的流程走就好). ...

  10. Xamarin+Prism开发详解七:Plugin开发与打包测试

    有了上章[Xamarin+Prism开发详解六:DependencyService与IPlatformInitializer的关系]的基础,现在来理解Plugin开发就简单了. 本文实例代码地址:ht ...

随机推荐

  1. MQ 如何保证数据一致性?

    前言 上个月,我们有个电商系统出了个灵异事件:用户支付成功了,但订单状态死活不改成"已发货". 折腾了半天才定位到问题:订单服务的MQ消息,像人间蒸发一样消失了. 这个Bug让我明 ...

  2. 阅读IDEA生成的equals方法--java进阶day05

    1.IDEA生成的equals方法 虽然我们之前写了equals方法,但IDEA中可以快速生成equals方法,因此,我们要能看懂IDEA生成的equals方法 1.if(this==o) 2.if( ...

  3. 【Python】批量导出word文档中的图片、嵌入式文件

    Python 批量导出word文档中的图片.嵌入式文件 需求 学生试卷中的题目有要提交截图的,也有要提交文件的,为了方便学生考试,允许单独交或者嵌入Word中提交,那么事后如何整理学生的答案?单独提交 ...

  4. AI团队比单打独斗强!CrewAI多智能体协作系统开发踩坑全解析

    AI团队比单打独斗强!CrewAI多智能体协作系统开发踩坑全解析 阅读时间: 5分钟 | 字数: 1500+ "你是否曾为单个大模型难以解决复杂专业问题而苦恼?是否想过,如果能像组建专业团队 ...

  5. Clion配置Fortran环境

    1.安装CLion 下载链接:https://www.jetbrains.com/ 下载好后安装到指定目录即可 2.安装Fortran插件 3.编写程序 1)打开CLion,新建一个Fortran项目 ...

  6. 一文搞懂Dockerfile

    Dockerfile官网 https://docs.docker.com/reference/dockerfile/ 什么是Dockerfile? Dockerfile 是一个文本文件,其内包含了一条 ...

  7. 【Linux】基于Exynos4412的U-Boot引导程序移植

    [Linux]基于Exynos4412的U-Boot引导程序移植 零.准备 首先我们得去下载好U-Boot的源码,因为用的芯片是2012年出的Exynos4412,因此我们选择这个时间节点附近的U-B ...

  8. eolinker响应预处理/规则校验:js正则写法注意事项

    JS的正则表达式的写法,需要对原有正则表达式进行适当加工才可正常使用 如:(正则表达式规则取到"/did1280064/Login") 常规的正则表达式为"did(\d+ ...

  9. 什么是 Java 中的直接内存(堆外内存)?

    Java 中的直接内存(堆外内存) 在 Java 中,直接内存(Direct Memory)指的是不受 JVM 堆管理的内存区域,也称为堆外内存.直接内存的使用通常与 Java NIO(New I/O ...

  10. centos7-NFS-网络文件系统

    NFS(network file system)网络文件系统 pdf文档下载链接 https://files.cnblogs.com/files/duxingren/NFS.zip 服务器192.16 ...