HarmonyOS 鸿蒙Next沉浸光感HdsTabs控制全屏

HarmonyOS 鸿蒙Next沉浸光感HdsTabs控制全屏 文档中沉浸光感中控制全屏显示的代码是哪一行,可以给指出吗?

5 回复

配置窗口全屏模式

在 EntryAbility 中,通过 setWindowLayoutFullScreen()方法将窗口设置为全屏布局,隐藏系统状态栏和导航栏,为应用内容提供完整的屏幕空间。

// EntryAbility.ets
import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit';
import { window } from '@kit.ArkUI';
import { BusinessError } from '@kit.BasicServicesKit';

export default class EntryAbility extends UIAbility {
    private windowStage: window.WindowStage | null = null;

    onWindowStageCreate(windowStage: window.WindowStage): void {
        this.windowStage = windowStage;
        windowStage.loadContent('pages/Index', (err) => {
            if (err.code) {
                console.error('Failed to load content:', JSON.stringify(err));
                return;
            }
            console.info('Succeeded in loading content.');
            this.setFullScreen(windowStage);
        });
    }

    private async setFullScreen(windowStage: window.WindowStage): Promise<void> {
        try {
            const mainWindow = await windowStage.getMainWindow();
            await mainWindow.setWindowLayoutFullScreen(true);
            console.info('Succeeded in setting window full screen.');
        } catch (error) {
            console.error('Failed to set window full screen, error code: ' + (error as BusinessError).code);
        }
    }
}

更多关于HarmonyOS 鸿蒙Next沉浸光感HdsTabs控制全屏的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


学习了

在HarmonyOS Next中,实现HdsTabs沉浸全屏控制:通过 windowStage.getMainWindowSync().setWindowLayoutFullScreen(true) 开启全屏布局,使用 setWindowSystemBarEnablesetWindowSystemBarProperties 调整状态栏/导航栏透明度与颜色。HdsTabs组件需设置 width('100%')layoutWeight(1) 适配全屏区域。

在鸿蒙 Next 的沉浸光感示例中,控制全屏显示的代码通常是通过 window.setWindowLayoutFullScreen(true) 实现的,该调用一般位于 EntryAbilityonWindowStageCreate 方法体内。
例如:

onWindowStageCreate(windowStage: window.WindowStage): void {
  let windowClass: window.Window = null;
  windowStage.getMainWindow((err, data) => {
    if (err.code) {
      console.error('Failed to obtain the main window.');
      return;
    }
    windowClass = data;
    // 控制全屏显示的代码(即这一行)
    windowClass.setWindowLayoutFullScreen(true);
  });
}

如果示例中使用了 HdsTabs,全屏效果也依赖于该设置,状态栏和导航栏会被隐藏,实现沉浸式体验。

回到顶部