HarmonyOS 鸿蒙Next中如何实现沉浸式模式

HarmonyOS 鸿蒙Next中如何实现沉浸式模式 主要涉及对窗口布局的全屏设置、安全区域的规避处理以及状态栏和导航栏的样式调整。具体创建WindowManager类,用于封装沉浸式模式的相关方法。这个类包含开启沉浸式模式、关闭沉浸式模式以及设置状态栏文字颜色等静态方法。通过window.getLastWindow()获取到当前窗口win实例,调用实例的getwindowAvoidArea()获取安全区高度,setwindowLayoutFullScreen()开启或关闭全屏,setwindowsystemBarProperties()设置状态栏颜色

  • window是鸿蒙提供好的一个全局对象

  • window.getLastWindow(getContext())

    • 获取当前窗口页面
  • 全屏 setWindowLayoutFullScreen(boolean) 是页面窗口的一个方法

    • 写法

      static async fullScreen() {
      
  • // 全屏 setWindowLayoutFullScreen 是页面窗口的一个方法

  • // 页面窗口怎么获取 => window.getLastWindow()

  • const xx = await window.getLastWindow(getContext()) // Index页面窗口
    xx.setWindowLayoutFullScreen(true) // 复杂 但不用你写 => 这里很多的功能都是调用鸿蒙底层提供的一个函数完成
    
  • 获取到状态栏的高度

    • window.getLastWindow(getContext()).then((windowStage: window.Window) => {
      
  • // 获取安全区域的高度

  • const area = windowStage.getWindowAvoidArea(window.AvoidAreaType.TYPE_SYSTEM)
    const h = area.topRect.height //获取到了当前设备窗口的安全区域的高度
    
  • // 将h这个值设置给AppStoage即可

  • AppStorage.setOrCreate('topHeight', h)
    
  • 设置状态栏文字的颜色

    • window.getLastWindow(getContext()).then((windowStage: window.Window) => {
        windowStage.setWindowSystemBarProperties({
          statusBarContentColor:'#FFFFFF' // 白色 只能写16进制的
        })
      })
      

实际开发中把这些方法封装起来,之后进行调用


更多关于HarmonyOS 鸿蒙Next中如何实现沉浸式模式的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

在HarmonyOS(鸿蒙Next)中实现沉浸式模式,主要通过管理状态栏和导航栏的显示与隐藏来实现。以下是具体步骤:

  1. 获取窗口对象:首先需要获取当前窗口的Window对象,通常通过getWindow()方法获取。

  2. 设置状态栏和导航栏的可见性

    • 使用WindowInsetsController来控制状态栏和导航栏的显示与隐藏。可以通过getInsetsController()方法获取WindowInsetsController对象。
    • 调用hide()方法来隐藏状态栏和导航栏,调用show()方法来显示它们。
  3. 设置沉浸式模式

    • 使用setSystemUiVisibility()方法,结合SYSTEM_UI_FLAG_FULLSCREENSYSTEM_UI_FLAG_HIDE_NAVIGATION等标志位来实现沉浸式模式。
    • 例如,setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION)可以同时隐藏状态栏和导航栏。
  4. 处理用户交互

    • 当用户与屏幕交互时,状态栏和导航栏可能会重新显示。可以通过重写onWindowFocusChanged()方法,在窗口焦点变化时重新设置沉浸式模式。
  5. 适配不同设备

    • 不同设备的屏幕尺寸和导航方式可能不同,需要确保在多种设备上都能正确实现沉浸式模式。

通过以上步骤,可以在HarmonyOS(鸿蒙Next)中实现沉浸式模式。

更多关于HarmonyOS 鸿蒙Next中如何实现沉浸式模式的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS 鸿蒙Next中实现沉浸式模式,可以通过以下步骤完成:

  1. 设置全屏显示:在AbilityonStart方法中调用setFullScreen(true),使应用进入全屏模式。

  2. 隐藏状态栏:使用Window类的setStatusBarVisibility方法,将状态栏设置为不可见。

  3. 隐藏导航栏:通过Window类的setNavigationBarVisibility方法,隐藏导航栏。

  4. 处理系统UI变化:监听系统UI的变化,确保在用户交互时正确显示或隐藏系统UI。

通过这些步骤,应用可以在鸿蒙Next中实现沉浸式体验,充分利用屏幕空间。

回到顶部