当前位置: 首页 > news >正文

【每日学点HarmonyOS Next知识】全局调整字体、h5选择框无法取消选中、margin不生效、Length转换为具体值、Prop和link比较

【每日学点HarmnoyOS Next知识】全局调整字体、h5选择框无法取消选中、margin不生效、Length转换为具体值、Prop和link比较

1、HarmonyOS 是否存在统一调整全局字体大小的方法?

是否存在统一调整全局字体大小的方法

可以用动态属性,自定义class实现AttributeModifier接口,把text需要固定的样式定义,然后在页面的Text地方调用。

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-universal-attributes-attribute-modifier-V5

动态设置组件的属性,支持开发者在属性设置时使用if/else语法,且根据需要使用多态样式设置属性。

2、HarmonyOS web组件里的h5如果动态设置checkbox的checked属性后,点击无法取消?

H5上的confirm需要在web的onConfirm上监听,参考以下代码:

import web_webview from '@ohos.web.webview'@Entry
@Component
struct WebComponent {controller: web_webview.WebviewController = new web_webview.WebviewController()build() {Column() {Web({src: '',controller: this.controller}).overScrollMode(OverScrollMode.NEVER).width('100%').height('100%').onControllerAttached(() => {this.controller.setCustomUserAgent('Mozilla/5.0 (Phone; OpenHarmony 4.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 ArkWeb/4.1.6.1 Mobile Variflight/6.1.0')this.controller.loadUrl('https://openapi.variflight.com/html/module/cs/index.html#/detail?id=323')}).onConfirm((event) => {if (event) {console.log("event.url:" + event.url)console.log("event.message:" + event.message)AlertDialog.show({title: 'onConfirm',message: 'text',primaryButton: {value: 'cancel',action: () => {event.result.handleCancel()}},secondaryButton: {value: 'ok',action: () => {event.result.handleConfirm()}},cancel: () => {event.result.handleCancel()}})}return true}).mixedMode(MixedMode.All).javaScriptAccess(true).domStorageAccess(true).overScrollMode(OverScrollMode.NEVER)}}
}
3、HarmonyOS 父组件左右设置margin,右侧margin没生效,改成padding就可以了?

父组件左右设置margin,右侧margin没生效,改成padding就可以了

margin作为外边距设置时,子组件里的width百分比设置即为屏幕整个宽度的百分比,然后再根据margin进行排布,所以当子组件宽度合为100%后,另外设margin会把子组件整体移动,超过屏幕宽度。但是设置padding时,子组件本身会先用屏幕宽度减去左右padding宽度,然后剩下的宽度再乘百分比进行子组件显示。

4、HarmonyOS Length 如何转换为具体数值?

.onAreaChange((oldValue,newValue)=>{//this.totalWidth=newValue.width})

newValue.width 是length ,转换成具体的数字?

参考demo:

.onAreaChange((oldValue: Area, newValue: Area) => {let num: number = 0num = newValue.width as numberconsole.log(num.toString())num = Number(newValue.width)console.log(num.toString())
})
5、HarmonyOS @Prop和 @link的内存和效率对比,使用大量数据深拷贝的时候,使用link的开销是不是比prop小?

@Prop和 @link的内存和效率对比,使用大量数据深拷贝的时候,使用link的开销是不是比prop小

@Prop和 @link存在数据同步的差异,目前并不支持@Prop和 @link数据深拷贝操作,但从实现方式看@Prop的开销应该小于@link方式@Prop和 @link 主要区别:@Prop装饰的变量必须使用其父组件提供的@State变量进行初始化,变量修改不会影响父组件UI刷新,仅影响当前组件UI刷新@Link装饰的变量也是来自父组件@State修饰变量进行初始化,变量修改不仅会影响当前组件UI刷新,还会影响父组件UI刷新@Link的底层触发逻:

初始渲染:执行父组件的build()函数后将创建子组件的新实例。初始化过程如下:父组件中的@State变量要求必须初始化,父组件中@State变量值会初始化给子组件的@Link变量。子组件的@Link变量值与其父组件的数据源变量保持同步(双向数据同步)。

父组件的@State状态变量包装类通过构造函数传给子组件,子组件的@Link包装类拿到父组件的@State的状态变量后,将当前@Link包装类this指针注册给父组件的@State变量。父组件中状态变量更新,引起相关子组件的@Link的更新:子组件@Link包装类把当前this指针注册给父组件。

父组件@State变量变更后,会遍历所有依赖它的系统组件(elementid)和状态变量(比如@Link包装类),通知他们更新数据。以此实现父组件对子组件的状态数据同步。当子组件中@Link更新后,处理步骤如下:@Link更新后,调用父组件的@State包装类的set方法,将更新后的数值同步回父组件。

子组件@Link和父组件@State分别遍历依赖的系统组件,进行对应的UI的更新。总结起来就是一句话:父组件的状态变量和子组件的@Link变量,双向数据同步,任何一边有变化,都会同步给对方,另外都是状态变量,根据声明式的UI范式的机制,关联的UI组件都会被重新渲染刷新。

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-link-V5

相关文章:

【每日学点HarmonyOS Next知识】全局调整字体、h5选择框无法取消选中、margin不生效、Length转换为具体值、Prop和link比较

【每日学点HarmnoyOS Next知识】全局调整字体、h5选择框无法取消选中、margin不生效、Length转换为具体值、Prop和link比较 1、HarmonyOS 是否存在统一调整全局字体大小的方法? 是否存在统一调整全局字体大小的方法 可以用动态属性,自定义class实现At…...

九、Spring Boot:自动配置原理

深入解析 Spring Boot 自动配置原理 Spring Boot 的自动配置机制是其最核心的特性之一,它极大地简化了 Spring 应用的初始搭建和开发过程。通过自动配置,Spring Boot 能够根据项目的依赖和配置自动加载和配置 Spring 应用的各个部分。本文将深入探讨 Sp…...

(动态规划 最长重复子数组)leetcode 718

思路就是建立一个二维的dp数组,只要nums1[i]nums2[j](nums1和nums2出现重复元素就置1 并加上左上角的值) 为什么代码是nums1 i-1和nums2 i-1 答:因为i和j以1为初始值开始遍历的 为什么要这么做并且为什么要加dp【i-1】【j-1】? …...

SFP+(Enhanced Small Form-factor Pluggable)详解

1. SFP的定义 SFP(Small Form-factor Pluggable Plus)是SFP的增强版本,专为10Gbps及以上高速网络设计。它继承了SFP的小型化、热插拔特性,但通过优化电气接口和协议支持,实现了更高的传输速率(典型为10Gbp…...

计算机毕业设计Hadoop+Spark+DeepSeek-R1大模型音乐推荐系统 音乐数据分析 音乐可视化 音乐爬虫 知识图谱 大数据毕业设计

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

Deepseek对ChatGPT的冲击?

从测试工程师的视角来看,DeepSeek对ChatGPT的冲击主要体现在**测试场景的垂直化需求与通用模型局限性之间的博弈**。以下从技术适配性、效率优化、风险控制及未来趋势四个维度展开分析: --- ### **一、技术适配性:垂直领域能力决定工具选择…...

【Python 初级函数详解】—— 参数沙漠与作用域丛林的求生指南

欢迎来到ZyyOvO的博客✨,一个关于探索技术的角落,记录学习的点滴📖,分享实用的技巧🛠️,偶尔还有一些奇思妙想💡 本文由ZyyOvO原创✍️,感谢支持❤️!请尊重原创&#x1…...

极客大学 java 进阶训练营怎么样,图文详解

Spring 思维导图 Spring 源码学习笔记 有关微服务的面试题: Dubbo中zookeeper做注册中心,如果注册中心集群都挂掉,发布者和订阅者之间还能通信么?微服务学习笔记 有关分布式的面试题: 消息幂等:如何保证消息不被重复…...

机器人学习模拟框架 robosuite (3) 机器人控制代码示例

Robosuite框架是一个用于机器人模拟和控制的强大工具,支持多种类型的机器人。 官方文档:Overview — robosuite 1.5 documentation 开源地址:https://github.com/ARISE-Initiative/robosuite 目录 1、通过键盘或SpaceMouse远程控制机器人…...

玩转python: 几个案例-掌握贪心算法

什么是贪心算法 贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法策略。它不从整体最优上加以考虑,只做出在某种意义上的局部最优解。下面我们将通过几个案例…...

腾讯集团软件开发-后台开发方向内推

熟练掌握C/C/Java/Go等其中一门开发语言; TCP/UDP网络协议及相关编程、进程间通讯编程; 专业软件知识,包括算法、操作系统、软件工程、设计模式、数据结构、数据库系统、网络安全等 有一定了解的: 1、Python、Shell、Perl等脚本语…...

哈希碰撞攻防战——深入浅出Map/Set的底层实现

各位看官早安午安晚安呀 如果您觉得这篇文章对您有帮助的话 欢迎您一键三连,小编尽全力做到更好 欢迎您分享给更多人哦 今天我们来学习Map/Set的底层实现 目录 问题一:hash会出现负数?数组越界 一:什么是二叉搜索树&#xff1f…...

深度解析Ant Design Pro 6开发实践

深度解析Ant Design Pro 6全栈开发实践:从架构设计到企业级应用落地 一、Ant Design Pro 6核心特性与生态定位(技术架构分析) 作为Ant Design生态体系的旗舰级企业应用中台框架,Ant Design Pro 6基于以下技术栈实现突破性升级&am…...

用大白话解释基础框架Spring Boot——像“装修套餐”一样简单

SpringBoot是什么(SpringBoot类似装修公司的全包套餐) SpringBoot是Java开发者的“装修神器”,可以快速搭建一个应用系统,不用自己亲自买钉子、水泥和瓷砖(相当于传统的Spring框架的复杂配置),…...

第十三届蓝桥杯大赛软件赛决赛C/C++ 大学 B 组

A 【2022——暴力DP / 优雅背包】-CSDN博客 B 【钟表——类日期问题】-CSDN博客 C 【卡牌——二分】-CSDN博客 D 【最大数字——DFS】-CSDN博客 E 【出差——Dijkstra】-CSDN博客 F 【费用报销——01背包】-CSDN博客 G 【故障——条件概率】-CSDN博客 H 【机房—…...

java后端开发day25--阶段项目(二)

(以下内容全部来自上述课程) 1.美化界面 private void initImage() {//路径分两种://1.绝对路径:从盘符开始写的路径 D:\\aaa\\bbb\\ccc.jpg//2.相对路径:从当前项目开始写的路径 aaa\\bbb\\ccc.jpg//添加图片的时…...

岚图汽车2月销售8013辆,岚图知音硬核引领智能出行

据官方消息,岚图汽车2月销售8013辆,同比增长152%,品牌势能持续提升。其中,岚图知音依靠强大的产品力,且在OTA 2.0之后,其AI大模型逍遥座舱为用户带来全新的出行体验。 业内专业人士表示,“汽车…...

【CSS—前端快速入门】CSS 常用样式

CSS 常用 CSS 样式 1. 前端样式查询网站: MDN Web Docs (mozilla.org) w3school 2. border 2.1 借助 MDN 了解 border 我们借助 MDN 网站来学习 border 样式的使用: 2.2 border 常见属性 保存代码,打开页面: 对于标签不同样式的…...

【软考-架构】1.3、磁盘-输入输出技术-总线

GitHub地址:https://github.com/tyronczt/system_architect 资料&文章更新 文章目录 存储系统💯考试真题输入输出技术💯考试真题第一题第二题 存储系统 寻道时间是指磁头移动到磁道所需的时间; 等待时间为等待读写的扇区转到…...

Linux软连接与时区日期

软连接 使用ln命令创建软连接。 在系统中创建软连接,可以将文件,文件夹连接到其他为止。 类似于Windows系统的快捷方式。 语法:ln -s 参数1 参数2 -s选项,创建软连接。 参数1,被链接的文件或文件夹。 参数2&#xff0…...

接口测试中缓存处理策略

在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 ​ 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制&#xff0…...

什么是EULA和DPA

文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

2023赣州旅游投资集团

单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

MySQL 主从同步异常处理

阅读原文:https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主,遇到的这个错误: Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一,通常表示&#xff…...

nnUNet V2修改网络——暴力替换网络为UNet++

更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...