奖券世界推广网站,在网站开发中哪里需要js文件,网络产品代理加盟,网站站点创建成功是什么意思大家好#xff0c;今天跟大家分享一下仓颉开发语言中的全屏模式。
和ArkTS一样#xff0c;仓颉的新建项目默认是非全屏模式的#xff0c;如果你的应用颜色比较丰富#xff0c;就会发现屏幕上方和底部的留白#xff0c;这是应用自动避让了屏幕上方摄像头区域和底部的导航条…大家好今天跟大家分享一下仓颉开发语言中的全屏模式。
和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语言##仓颉##购物#