鸿蒙Next如何判断当前是否处于全屏状态

在鸿蒙Next开发中,如何通过代码判断当前应用是否处于全屏显示状态?是否有现成的API可以直接获取这个状态?如果有的话,具体应该调用哪个方法?

2 回复

鸿蒙Next判断全屏状态?简单!用WindowgetAttributes()flags,检查有没有FLAG_FULLSCREEN。有就是全屏,没有就不是。代码两行搞定,比判断女朋友是否生气容易多了!

更多关于鸿蒙Next如何判断当前是否处于全屏状态的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next(HarmonyOS NEXT)中,可以通过以下方法判断当前是否处于全屏状态:

主要方法

使用 Window 类的 getWindowMode() 方法,检查窗口模式是否为全屏模式。

代码示例

import window from '@ohos.window';

// 获取当前窗口
let windowClass: window.Window;
window.getLastWindow(this.context, (err, data) => {
  if (err) {
    console.error('Failed to get the window. Code: ' + err.code + ', message: ' + err.message);
    return;
  }
  windowClass = data;
  
  // 获取窗口模式
  let windowMode = windowClass.getWindowMode();
  
  // 判断是否为全屏
  if (windowMode === window.WindowMode.FULLSCREEN) {
    console.log('当前处于全屏状态');
  } else {
    console.log('当前不是全屏状态');
  }
});

关键说明

  • window.WindowMode.FULLSCREEN:表示全屏模式常量
  • 需要在 UIAbility 或带有 context 的组件中调用
  • 需要权限:ohos.permission.SYSTEM_FLOAT_WINDOW(如果涉及悬浮窗相关操作)

其他相关模式

  • WINDOW_MODE_FLOATING:浮动窗口
  • WINDOW_MODE_SPLIT_PRIMARY:分屏主窗口
  • WINDOW_MODE_SPLIT_SECONDARY:分屏次窗口

通过比较 getWindowMode() 的返回值与这些常量,可以准确判断当前窗口状态。

回到顶部