首页 > 其他分享 >HarmonyOS沉浸式模式FullScreen

HarmonyOS沉浸式模式FullScreen

时间:2024-09-03 18:54:19浏览次数:6  
标签:FullScreen AppStorage const 沉浸 win setOrCreate HarmonyOS window

import { window } from '@kit.ArkUI'

class FullScreen{
  //开启全屏
  async enable(){
    const ctx=AppStorage.get<Context>('context')!
    const win=await window.getLastWindow(ctx)
    win.setWindowLayoutFullScreen(true)
    //顶部安全区高度(状态栏)
    const topRect=win.getWindowAvoidArea(window.AvoidAreaType.TYPE_SYSTEM).topRect
    AppStorage.setOrCreate<number>('topHeight',px2vp(topRect.height))
    //底部导航的高度(导航条)
    const bottomRect=win.getWindowAvoidArea(window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR).bottomRect
    AppStorage.setOrCreate<number>('bottomHeight',px2vp(bottomRect.height))
  }
  //关闭全屏
  async  disable(){
  const ctx=AppStorage.get<Context>('context')!
  const win=await window.getLastWindow(ctx)
  win.setWindowLayoutFullScreen(false)
    //false关闭沉浸式
    //顶部安全区高度(状态栏)归零
    AppStorage.setOrCreate<number>('topHeight',0)
    //底部导航的高度归零
    AppStorage.setOrCreate<number>('bottomHeight',0)
}
}
 export const fullScreen=new FullScreen()

封装一个FullScreen组件,在EntryAbility中找到onWindowStageCreate,若想设置全屏则在onWindowStageCreate中写fullScreen.enable(),若想关闭全屏则写fullScreen.disable()。

标签:FullScreen,AppStorage,const,沉浸,win,setOrCreate,HarmonyOS,window
From: https://blog.csdn.net/LexinZong/article/details/141866503

相关文章

  • HarmonyOS实现登录
    首先,封装一个auth工具,提供初始化持久化用户信息方法,首页初始化用户,登录后存储用户,使用导出的key。1.封装auth工具exportinterfaceUser{token:stringnickname:stringavatar:stringaccount:string}classAuth{KEY:string='user'//在入口页......
  • 从0开始的HarmonyOS NEXT —— 认识基础架构到hello world页面添加(第一章)
    ⭐前言大家好,我是yma16,本文分享从0开始的HarmonyOSNEXT——认识基础架构到helloworld页面添加(第一章)。HarmonyOSSDK以Kit维度提供丰富、完备的开放能力,涵盖应用框架、系统、媒体、图形、应用服务、AI六大领域。应用框架相关Kit开放能力:AbilityKit(程序框架服务)、ArkUI(方舟UI......
  • Nectar AI融资390万美元,打造无删减沉浸式AI伴侣
    NectarAI——一个沉浸式的AI陪伴平台,今日宣布已筹集390万美元的资金。本轮种子融资由MechanismCapital和Karatage共同领投,参与方包括Synergis、Maelstrom(ArthurHayes)、BuilderCapital、Baboon和Decima。知名天使投资人包括TekinSalimi和GeorgeLambeth(Dao5),以及AlbertCho......
  • 鸿蒙HarmonyOS开发:创建和配置新工程
    当开始开发一个应用/服务时,首先需要根据工程创建向导,创建一个新的工程,工具会自动生成对应的代码和资源模板。说明在运行DevEcoStudio工程时,建议每一个运行窗口有2GB以上的可用内存空间。创建和配置新工程DevEcoStudio提供了基础的工程模板资源,不同模板支持的设备类型、......
  • HarmonyOS鸿蒙开发 应用程序项目工程结构
    文章目录前言一、基础知识1、应用程序包2、UI框架3、Stage应用模型二、Stage模型的应用程序包结构总结前言鸿蒙的应用程序工程结构分为FA和Stage两种模型结构,这两种模型的应用包结构并不相同。FA模型:API7开始支持的模型,目前已不是官方主推模型,所以不再做详细介绍......
  • HarmonyOS实战开发:NAPI接口规范开发
    简介NAPI(NativeAPI)组件是一套对外接口基于Node.jsN-API规范开发的原生模块扩展开发框架。图1 NAPI组件架构图NativeEngineJS引擎抽象层,统一JS引擎在NAPI层的接口行为。ModuleManager管理模块,用于模块加载、模块信息缓存。ScopeManager管理NativeValue的生命周......
  • 鸿蒙Next 开发App,沉浸式效果
    今天给自己开发的鸿蒙NextApp实现沉浸式效果,其实就是屏幕上边的状态栏和下边的横条区域和App界面一样的颜色。之前在知识星球分享过 expandSafeArea的方案(https://t.zsxq.com/8jkJ9),但后来在真机上发现有问题,在对App进行缩小分屏的时候,有个缩小动画,发现其实底部还是默认色-......
  • HarmonyOS开发实战:ArkTS接口绑定
    场景介绍通过napi_wrap将ArkTS对象与Native的C++对象绑定,后续操作时再通过napi_unwrap将ArkTS对象绑定的C++对象取出,并对其进行操作。使用示例接口声明、编译配置以及模块注册接口声明//index.d.tsexportclassMyObject{constructor(arg:number);plusOne:(......
  • HarmonyOS应用基础
    目录 一.ArkTS-语法基础1.基础入门1.1.输出语句2.认识和存储数据 2.1.认识数据2.2.存储数据  2.2.1.变量2.2.2.常量2.2.3.命名规则3.数组3.1.获得数组元素 4.函数4.1.基本使用4.2.参数4.3.返回值4.4.箭头函数5.对象 5.1.对象-定义&......
  • HarmonyOS开发之H5页面启动其他应用
    场景描述在HarmonyOS的开发中,经常需要在应用或者浏览器的H5页面中跳转到另一个应用。为了实现这一目标,本文档将介绍一种通过URLScheme(DeepLink)来启动已安装应用或者跳转至应用商店下载未安装应用的方法。实现步骤1.配置Scheme查询首先,在拉起方的module.json5文件中配置......