鸿蒙应用开发--全屏显示 原创 精华

NL_AIDC_XJS
发布于 2022-1-21 17:10
浏览
3收藏

目标

页面全屏显示

开发

在HarmonyOS开发中页面全屏显示有两个步骤
1、在config.json中配置theme;
2、代码设置全屏。

实践

一、配置theme

1.1、API

主题 描述
androidhwext:style/Theme.Emui.NoTitleBar 无标题
androidhwext:style/Theme.Emui.NoDisplay 无界面
androidhwext:style/Theme.Emui.Light.NoTitleBar.Fullscreen 全屏无状态栏
androidhwext:style/Theme.Emui.Dialog 将页面显示为对话框模式
androidhwext:style/Theme.Emui.NoTitleBa 不显示应用程序标题栏
androidhwext:style/Theme.Emui.NoTitleBar.Fullscreen 不显示应用程序标题栏,并全屏
androidhwext:style/Theme.Emui.Light 背景为白色
androidhwext:style/Theme.Emui.Light.NoTitleBar 白色背景并无标题栏
androidhwext:style/Theme.Emui.Light.NoTitleBar.Fullscreen 白色背景,无标题栏,全屏
androidhwext:style/Theme.Emui.Black 背景黑色
androidhwext:style/Theme.Emui.Black.NoTitleBar 黑色背景并无标题栏
androidhwext:style/Theme.Emui.Black.NoTitleBar.Fullscreen 黑色背景,无标题栏,全屏
androidhwext:style/Theme.Emui.Wallpaper 用系统桌面为应用程序背景
androidhwext:style/Theme.Emui.Wallpaper.NoTitleBar 用系统桌面为应用程序背景,且无标题栏
androidhwext:style/Theme.Emui.Wallpaper.NoTitleBar.Fullscreen 用系统桌面为应用程序背景,无标题栏,全屏
androidhwext:style/Emui.Translucent 透明背景
androidhwext:style/Theme.Emui.Translucent.NoTitleBar 透明背景并无标题
androidhwext:style/Theme.Emui.Translucent.NoTitleBar.Fullscreen 透明背景并无标题,全屏
androidhwext:style/Theme.Emui.Panel 面板风格显示
androidhwext:style/Theme.Emui.Light.Panel 平板风格显示

以上的主题是官方提供,我并没有每个主题进行验证,我选择了其中一种主题进行实践。

1.2、androidhwext:style/Theme.Emui.NoTitleBar

说明:在项目的config.json中设置主题,只要是在module标签下创建metaData,代码如下

"module": {
//...
"metaData" : {
      "customizeData" : [
        {
          "name": "hwc-theme",
          "value": "androidhwext:style/Theme.Emui.NoTitleBar"
        }
      ]
    },
//...
}

效果

鸿蒙应用开发--全屏显示-鸿蒙开发者社区

二、全屏显示

在需要全屏显示的AbilitySlice中动态设置:隐藏状态栏,代码如下

    @Override
    protected void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);
        // 隐藏状态栏、设置状态栏和导航栏透明
        getWindow().addFlags(WindowManager.LayoutConfig.MARK_FULL_SCREEN|
                WindowManager.LayoutConfig.MARK_TRANSLUCENT_STATUS|
                WindowManager.LayoutConfig.MARK_TRANSLUCENT_NAVIGATION);
    }

效果

鸿蒙应用开发--全屏显示-鸿蒙开发者社区

窗口的其他设置

设置窗口的函数还有以下几种,可以根据需求进行动态设置

 // 设置状态栏颜色
WindowManager.getInstance().getTopWindow().get().setStatusBarColor(int color);
// 全屏显示,隐藏状态栏
getWindow().addFlags(WindowManager.LayoutConfig.MARK_FULL_SCREEN);
//沉浸式状态栏
getWindow().addFlags(WindowManager.LayoutConfig.MARK_TRANSLUCENT_STATUS);
//设置显示或隐藏状态栏。
WindowManager.getInstance().getTopWindow().get().setStatusBarVisibility(int visibility);

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
4
收藏 3
回复
举报
回复
    相关推荐