鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:多态样式)

设置组件不同状态下的样式。

说明:

从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

从API Version 11开始支持另一种写法attributeModifier,可根据开发者需要动态设置属性。

stateStyles

stateStyles(value: StateStyles)

设置组件不同状态的样式。

卡片能力: 从API version 9开始,该接口支持在ArkTS卡片中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名类型必填说明
valueStateStyles设置组件不同状态的样式。

StateStyles接口说明

从API version 9开始,该接口支持在ArkTS卡片中使用。只支持通用属性。

状态名称类型必填描述
normal()=>void组件无状态时的样式。
pressed()=>void组件按下状态的样式。
disabled()=>void组件禁用状态的样式。
focused()=>void组件获焦状态的样式。
clicked()=>void组件点击状态的样式。
selected10+()=>void组件选中状态的样式。

selected选中状态说明

  • 当前多态样式的选中状态样式依赖组件选中属性值,可以使用onClick修改属性值,或使用属性自带$$双向绑定功能。

  • 当前支持selected的组件及其参数/属性值:

    组件支持的参数/属性起始API版本
    Checkboxselect10
    CheckboxGroupselectAll10
    Radiochecked10
    ToggleisOn10
    ListItemselected10
    GridItemselected10
    MenuItemselected10

示例

示例1

// xxx.ets
@Entry
@Component
struct StyleExample {@State isEnable: boolean = true@Styles pressedStyles():void {.backgroundColor("#ED6F21").borderRadius(10).borderStyle(BorderStyle.Dashed).borderWidth(2).borderColor("#33000000").width(120).height(30).opacity(1)}@Styles disabledStyles():void {.backgroundColor("#E5E5E5").borderRadius(10).borderStyle(BorderStyle.Solid).borderWidth(2).borderColor("#2a4c1919").width(90).height(25).opacity(1)}@Styles normalStyles():void {.backgroundColor("#0A59F7").borderRadius(10).borderStyle(BorderStyle.Solid).borderWidth(2).borderColor("#33000000").width(100).height(25).opacity(1)}build() {Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center }) {Text("normal").fontSize(14).fontColor(Color.White).opacity(0.5).stateStyles({normal: this.normalStyles,}).margin({ bottom: 20 }).textAlign(TextAlign.Center)Text("pressed").backgroundColor("#0A59F7").borderRadius(20).borderStyle(BorderStyle.Dotted).borderWidth(2).borderColor(Color.Red).width(100).height(25).opacity(1).fontSize(14).fontColor(Color.White).stateStyles({pressed: this.pressedStyles,}).margin({ bottom: 20 }).textAlign(TextAlign.Center)Text(this.isEnable == true ? "effective" : "disabled").backgroundColor("#0A59F7").borderRadius(20).borderStyle(BorderStyle.Solid).borderWidth(2).borderColor(Color.Gray).width(100).height(25).opacity(1).fontSize(14).fontColor(Color.White).enabled(this.isEnable).stateStyles({disabled: this.disabledStyles,}).textAlign(TextAlign.Center)Text("control disabled").onClick(() => {this.isEnable = !this.isEnableconsole.log(`${this.isEnable}`)})}.width(350).height(300)}
}

zh-cn_image_0000001188742468

示例2

// xxx.ets
@Entry
@Component
struct Index {@State value: boolean = false@State value2: boolean = false@StylesnormalStyles(): void{.backgroundColor("#E5E5E1")}@StylesselectStyles(): void{.backgroundColor("#ED6F21").borderWidth(2)}build() {Flex({ direction: FlexDirection.Row, justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {Column() {Text('Radio1').fontSize(25)Radio({ value: 'Radio1', group: 'radioGroup1' }).checked(this.value).height(50).width(50).borderWidth(0).borderRadius(30).onClick(() => {this.value = !this.value}).stateStyles({normal: this.normalStyles,selected: this.selectStyles,})}.margin(30)Column() {Text('Radio2').fontSize(25)Radio({ value: 'Radio2', group: 'radioGroup2' }).checked($$this.value2).height(50).width(50).borderWidth(0).borderRadius(30).stateStyles({normal: this.normalStyles,selected: this.selectStyles,})}.margin(30)}.padding({ top: 30 })}
}

selected

最后,有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(Harmony NEXT)资料用来跟着学习是非常有必要的。 

这份鸿蒙(Harmony NEXT)资料包含了鸿蒙开发必掌握的核心知识要点,内容包含了ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(Harmony NEXT)技术知识点。

希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小伙伴自行领取,限时开源,先到先得~无套路领取!!

 获取这份完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

鸿蒙(Harmony NEXT)最新学习路线

  •  HarmonOS基础技能

  • HarmonOS就业必备技能 
  •  HarmonOS多媒体技术

  • 鸿蒙NaPi组件进阶

  • HarmonOS高级技能

  • 初识HarmonOS内核 
  • 实战就业级设备开发

有了路线图,怎么能没有学习资料呢,小编也准备了一份联合鸿蒙官方发布笔记整理收纳的一套系统性的鸿蒙(OpenHarmony )学习手册(共计1236页)鸿蒙(OpenHarmony )开发入门教学视频,内容包含:ArkTS、ArkUI、Web开发、应用模型、资源分类…等知识点。

获取以上完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

《鸿蒙 (OpenHarmony)开发入门教学视频》

《鸿蒙生态应用开发V2.0白皮书》

图片

《鸿蒙 (OpenHarmony)开发基础到实战手册》

OpenHarmony北向、南向开发环境搭建

图片

 《鸿蒙开发基础》

  • ArkTS语言
  • 安装DevEco Studio
  • 运用你的第一个ArkTS应用
  • ArkUI声明式UI开发
  • .……

图片

 《鸿蒙开发进阶》

  • Stage模型入门
  • 网络管理
  • 数据管理
  • 电话服务
  • 分布式应用开发
  • 通知与窗口管理
  • 多媒体技术
  • 安全技能
  • 任务管理
  • WebGL
  • 国际化开发
  • 应用测试
  • DFX面向未来设计
  • 鸿蒙系统移植和裁剪定制
  • ……

图片

《鸿蒙进阶实战》

  • ArkTS实践
  • UIAbility应用
  • 网络案例
  • ……

图片

 获取以上完整鸿蒙HarmonyOS学习资料,请点击→纯血版全套鸿蒙HarmonyOS学习资料

总结

总的来说,华为鸿蒙不再兼容安卓,对中年程序员来说是一个挑战,也是一个机会。只有积极应对变化,不断学习和提升自己,他们才能在这个变革的时代中立于不败之地。 

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

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

相关文章

【深度学习笔记】5_8 网络中的网络NiN

注:本文为《动手学深度学习》开源内容,部分标注了个人理解,仅为个人学习记录,无抄袭搬运意图 5.8 网络中的网络(NiN) 前几节介绍的LeNet、AlexNet和VGG在设计上的共同之处是:先以由卷积层构成的…

STL容器之map和set的补充AVL树

一、AVL树 ​ 不同搜索的对比:1.暴力搜索时间复杂度是O(N);2.二分查找的时间复杂度是O(lgN),但是伴随着有序,插入删除挪动数据的成本极高;3.二叉搜索的时间复杂度是高度次数,极端场景会退化为类似链表时间…

MySQL 主从同步模式

MySQL主从同步是一种数据库复制技术,其中一个MySQL数据库服务器(主服务器)上的更改会被自动地传播到一个或多个其他数据库服务器(从服务器)。这有助于提高系统的可伸缩性、可用性和容错性。以下是设置MySQL主从同步的基…

网络编程的学习

思维导图 多路复用代码练习 select完成TCP并发服务器 #include<myhead.h> #define SER_IP "192.168.125.73" //服务器IP #define SER_PORT 8888 //服务器端口号int main(int argc, const char *argv[]) {//1、创建用于监听的套接字int sfd -1;s…

BUUCTF-MISC1

二维码1 1.打开附件 得到一个二维码 2. 查看 拉到kali用binwalk查看 3.文件分离 发现图片中含有压缩包文件 用binwalk -e 文件名 &#xff0c;进行文件分离 得到一个分离后的文件夹 点开&#xff0c;发现是一个压缩包&#xff0c;压缩包中含有加密文档 4.破解密码 用ARCH…

CSS3新特性

简介 继CSS2之后&#xff0c;CSS3增加了很多新的特性&#xff0c;虽然W3C仍在规范中&#xff0c;但是很多新的CSS3属性已经在很多现代浏览器中得到了支持。 CSS3边框 在CSS3中&#xff0c;可以创建圆角边框&#xff0c;添加边框阴影&#xff0c;设置边框图片&#xff0c;利用…

市场复盘总结 20240305

仅用于记录当天的市场情况&#xff0c;用于统计交易策略的适用情况&#xff0c;以便程序回测 短线核心&#xff1a;不参与任何级别的调整&#xff0c;采用龙空龙模式 一支股票 10%的时候可以操作&#xff0c; 90%的时间适合空仓等待 二进三&#xff1a; 进级率中 25% 最常用的…

栈和队列之队列

1.队列 1.1队列的概念 队列&#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表&#xff0c;队列具有先进先出 FIFO(First In First Out) 入队列&#xff1a;进行插入操作的一端称为队尾 出队列&#xff1a;进行删除操作的一端称为队…

2023 2024年全国职业院校技能大赛中职组网络建设与运维赛项服务器Linux部分教程解析

欢迎合作 需要资料请私 Rocky 9 包含各种常考服务(包括新题型KVM等)

一个复杂的数据流转换:文件流转base64

一个复杂的数据流转换&#xff1a;文件流转base64 可是我再也没遇到一个像福贵这样令我难忘的人了&#xff0c;对自己的经历如此清楚&#xff0c;又能如此精彩地讲述自己是如何衰老的。这样的老人在乡间实在是 难以遇上&#xff0c;也许是困苦的生活损坏了他们的记忆&#xff0…

Linux进程详细介绍

文章目录 Linux进程1、计算机体系结构和操作系统管理1.1、计算机体系结构 -- 硬件1.2、操作系统&#xff08;Operator System&#xff09; -- 软件 2、进程2.1、进程基本概念2.2、进程标识符2.2.1、获取当前进程标识符和当前进程的父进程标识符2.2.2、通过系统调用创建进程 -- …

使用Weaviate向量数据库:从Embeddings到Applications (Multilingual Search和RAG)

Vector Databases: from Embeddings to Applications 课程地址&#xff1a;https://www.deeplearning.ai/short-courses/vector-databases-embeddings-applications/ 下面是这门课程的笔记。 使用Weaviate向量数据库&#xff1a;从Embeddings到应用&#xff0c;比如Multilin…