回复
鸿蒙应用开发--全屏显示 原创 精华
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
回复
相关推荐