HarmonyOs鸿蒙开发实战(17)=>沉浸式效果第二种方案一组件安全区方案

 1.沉浸式效果的目的

  • 开发应用沉浸式效果主要指通过调整状态栏、应用界面和导航条的显示效果来减少状态栏导航条等系统界面的突兀感,从而使用户获得最佳的UI体验。

2.组件安全区方案介绍

  • 应用在默认情况下窗口背景绘制范围是全屏,但UI元素被限制在安全区内(自动排除状态栏和导航条)进行布局,来避免界面元素被状态栏和导航条遮盖,效果如下。
  • 应用未使用setWindowLayoutFullScreen()接口设置窗口全屏布局时,默认使用组件安全区布局。
  • 布局系统保持安全区内布局,然后通过接口延伸expandSafeArea绘制内容(如背景色,背景图)到状态栏和导航条区域实现沉浸式效果。

3.具体实现方式1=>状态栏和导航条颜色相同场景,可以通过设置窗口的背景色来实现沉浸式效果。窗口背景色可通过setWindowBackgroundColor()进行设置。效果及代码如下:

示例代码:

步骤1=>

import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit';
import { window } from '@kit.ArkUI';

export default class EntryAbility extends UIAbility {
  // ...

  onWindowStageCreate(windowStage: window.WindowStage): void {
    windowStage.loadContent('pages/Index', (err, data) => {
      if (err.code) {
        return;
      }

      // 设置全窗颜色和应用元素颜色一致
      windowStage.getMainWindowSync().setWindowBackgroundColor('#008000');
    });
  }
}

步骤二=> 设置安全区组件背景色和状态栏导航栏颜色一致

 4.实现方式2 => 状态栏和导航条颜色不同时,可以使用expandSafeArea属性扩展安全区域属性进行调整,原理如下:

  • 布局阶段按照安全区范围大小进行UI元素布局。
  • 布局完成后查看设置了expandSafeArea的组件边界(不包括margin)是否和安全区边界相交。
  • 如果设置了expandSafeArea的组件和安全区边界相交,根据expandSafeArea传递的属性则进一步扩大组件绘制区域大小覆盖状态栏、导航条这些非安全区域。
  • 上述过程仅改变组件自身绘制大小,不进行二次布局,不影响子节点和兄弟节点的大小和位置。
  • 子节点可以单独设置该属性,只需要自身边界和安全区域重合就可以延伸自身大小至非安全区域内,需要确保父组件未设置clip等裁切属性。
  • 配置expandSafeArea属性组件进行绘制扩展时,需要关注组件不能配置固定宽高尺寸,百分比除外。

        4.1沉浸式效果如下=>

        4.2.沉浸式具体代码如下=>

5.大功告成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/476158.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

五天SpringCloud计划——DAY1之mybatis-plus的使用

一、引言 咱也不知道为啥SpringCloud课程会先教mybatis-plus的使用,但是教都教了,就学了吧,学完之后觉得mybatis-plus中的一些方法还是很好用了,本文作为我学习mybatis-plus的总结提升,希望大家看完之后也可以熟悉myba…

Matlab 答题卡方案

在现代教育事业的飞速发展中,考试已经成为现代教育事业中最公平的方式方法,而且也是衡量教与学的唯一方法。通过考试成绩的好与坏,老师和家长可以分析出学生掌握的知识多少和学习情况。从而老师可以了解到自己教学中的不足来改进教学的方式方…

丹摩|丹摩助力selenium实现大麦网抢票

丹摩|丹摩助力selenium实现大麦网抢票 声明:非广告,为用户体验 1.引言 在人工智能飞速发展的今天,丹摩智算平台(DAMODEL)以其卓越的AI算力服务脱颖而出,为开发者提供了一个简化AI开发流程的强…

【生成数据集EXCEL文件】使用生成对抗网络GAN生成数据集:输出生成数据集EXCEL

本文采用MATLAB编程,使用生成对抗网络GAN生成数据集:输出生成数据集EXCEL格式文件,方便大家使用。 实际工程应用中,由于经济成本和人力成本的限制,获取大量典型的有标签的数据变得极具挑战,造成了训练样本…

cocos creator 3.8 一些简单的操作技巧,材质的创建 1

这是一个飞机的3D模型与贴图 导入到cocos中,法线模型文件中已经包含了mesh、material、prefab,也就是模型、材质与预制。界面上创建一个空节点Plane,将模型直接拖入到Plane下。新建材质如图下 Effect属性选择builtin-unlit,不需…

手机领夹麦克风哪个牌子好,哪种领夹麦性价比高,热门麦克风推荐

​在如今这个科技飞速发展的时代,麦克风的选择成了很多人关心的问题,特别是无线麦克风该怎么选呢?向我咨询麦克风选购事宜的人可不在少数。要是你只是想简单自娱自乐一下,其实真没必要大费周章,直接用手机自带的麦克风…

【功能实现】bilibili顶部鼠标跟随效果怎么实现?

我们在电脑端打开b站首页时,总会被顶部【鼠标跟随】的效果所吸引,那他是如何实现的,来研究一下。 b站效果: 分析: 1.监听鼠标的位置,当悬浮到该模块时,图片会随鼠标移动 2.引入图片的样式是动…

WebStorm 安装配置(详细教程)

文章目录 一、简介二、优势三、下载四、安装4.1 开始安装4.2 选择安装路径4.3 安装选项4.4 选择开始菜单文件夹4.5 安装完成 五、常用插件5.1 括号插件(Rainbow Brackets)5.2 翻译插件(Translation)5.3 代码缩略图(Cod…

[C++]:C++11(三)

1. 可变参数模版 1.1 概念 可变参数模板允许我们定义能接受可变数目模板参数的模板。简单来说,就好比一个函数可以接受任意个数的实际参数一样,可变参数模板能应对不同数量的模板参数情况。比如,我们可以有一个模板类或者模板函数&#xff…

【Nginx从入门到精通】05-安装部署-虚拟机不能上网简单排错

文章目录 总结1、排查步骤 一、排查:Vmware网关二、排查:ipStage 1 :ping 127.0.0.1Stage 2 :ping 宿主机ipStage 3 :ping 网关 失败原因解决方案Stage 4 :ping qq.com 总结 1、排查步骤 Vmware中网关是否…

InstantStyle容器构建指南

一、介绍 InstantStyle 是一个由小红书的 InstantX 团队开发并推出的图像风格迁移框架,它专注于解决图像生成中的风格化问题,旨在生成与参考图像风格一致的图像。以下是关于 InstantStyle 的详细介绍: 1.技术特点 风格与内容的有效分离 &a…

卷积神经网络各层介绍

目录 1 卷积层 2 BN层 3 激活层 3.1 ReLU(Rectified Linear Unit) 3.2 sigmoid 3.3 tanh(双曲正切) 3.4 Softmax 4 池化层 5 全连接层 6 模型例子 1 卷积层 卷积是使用一个卷积核(滤波器)对矩阵进…

Elastic 和 Red Hat:加速公共部门 AI 和机器学习计划

作者:来自 Elastic Michael Smith 随着公共部门组织适应数据的指数级增长,迫切需要强大、适应性强的解决方案来管理和处理大型复杂数据集。人工智能 (Artificial intelligence - AI) 和机器学习 (machine learning - ML) 已成为政府机构将数据转化为可操…

SAP B1 登陆报错解决方案 - 系统架构目录服务器选择

背景 登录时出现如下报错,报错显示为【系统架构目录服务器选择】 强行登录会发现过往账套都不见了 出现原因 出于各种原因在开机时没有把 SAP 所有的服务成功启动(上一次启动科学上网后全局代理没关干净之类的)。 解决方案 关机几分钟重启…

基于深度卷积神经网络(CNN)模型的图像着色研究与应用系统实现

1.摘要 许多历史照片都是黑白的,通过颜色化可以恢复这些照片的历史感和真实感,使人们更好地理解和感受历史事件。随着深度学习技术的发展,特别是卷积神经网络和自监督学习的兴起,研究人员提出了新的方法来解决这些问题。通过将颜色…

【CVE-2024-9413】SCP-Firmware漏洞:安全通告

安全之安全(security)博客目录导读 目录 一、概述 二、修订历史 三、CVE根因分析 四、问题修复解决 一、概述 在SCP固件中发现了一个漏洞,如果利用该漏洞,可能会允许应用处理器(AP)在系统控制处理器(SCP&#xf…

Oracle 19C 安装RAC磁盘投票失败

ORACLE 19C 安装RAC第二个节点报错,没有找到足够的 voting 文件(投票磁盘) 1、磁盘投票失败分析 1.1、02节点报错日志 CRS-4123: Starting Oracle High Availability Services-managed resources CRS-2672: Attempting to start ora.mdnsd…

【Maven】IDEA创建Maven项目 Maven配置

文章目录 简介配置环境变量配置仓库测试安装 IDEA创建项目pom.xml 简介 Maven 是一个非常流行的项目管理和构建自动化工具,主要应用于 Java 项目的构建、依赖管理和项目信息管理。它是由 Apache 软件基金会维护的开源项目。Maven 的设计理念是通过一个项目对象模型…

vue3:使用插件递归组件

vue3:使用插件递归组件 首先安装插件 npm i unplugin-vue-define-optionsvite.config.ts 配置插件 // vite.config.ts// 引入 unplugin-vue-define-options import DefineOptions from "unplugin-vue-define-options"; export default defineConfig({// 注册插件 De…

开源TTS语音克隆神器GPT-SoVITS_V2版本地整合包部署与远程使用生成音频

文章目录 前言1.GPT-SoVITS V2下载2.本地运行GPT-SoVITS V23.简单使用演示4.安装内网穿透工具4.1 创建远程连接公网地址 5. 固定远程访问公网地址 前言 本文主要介绍如何在Windows系统电脑使用整合包一键部署开源TTS语音克隆神器GPT-SoVITS,并结合cpolar内网穿透工…