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

HarmonyOS 鸿蒙应用开发 - 多态样式 stateStyles

  前言:@Styles和@Extend仅仅应用于静态页面的样式复用,stateStyles可以依据组件的内部状态的不同,快速设置不同样式,类似于css伪类,但语法不同。

ArkUI提供以下四种状态:

  • focused:获焦态。
  • normal:正常态。
  • pressed:按压态。
  • disabled:不可用态。

1、基础使用示例

  
//1、基础使用示例Button('1多态样式实例').margin(20).stateStyles({normal: { //正常情况.backgroundColor(Color.Red)},focused: {//焦点.backgroundColor(Color.Green)},pressed: {//点击时.backgroundColor(Color.Black)}}).focusable(false)Button('1按钮被禁用').enabled(false).stateStyles({disabled:{.backgroundColor(Color.Gray)}})

2、联合使用示例

struct StateStylesSample {//2 通用样式@Styles normalStyle() {.backgroundColor(Color.Orange)}//2 通用样式@Styles pressedStyle() {.backgroundColor(Color.Red)}build() {Column() {
  //2、联合使用示例Text('2Styles和stateStyles联合使用示例').fontSize(20).margin({top:10}).fontColor(Color.White).stateStyles({normal: this.normalStyle,pressed: this.pressedStyle,})

3、在stateStyles里使用常规变量和状态变量

struct StateStylesSample {//3 stateStyles里使用常规变量和状态变量@State pressedColor: Color = Color.Red;normalColor: Color = Color.Greenbuild() {
 //3、在stateStyles里使用常规变量和状态变量Button('3在stateStyles里使用常规变量和状态变量')//.height(100).width(350).fontSize(16).stateStyles({normal: {.backgroundColor(this.normalColor)},pressed:{.backgroundColor(this.pressedColor)}}).margin('20')

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • solidworks画螺栓学习笔记
  • 自己手写一个栈【C风格】
  • Qml:线程
  • 93.网络游戏逆向分析与漏洞攻防-游戏技能系统分析-增强技能信息显示后进行分析
  • Redis批量删除指定前缀的key
  • STM32H743的FDCAN使用方法(2):STM32CubeMX初始化代码修改
  • 判断变量是否为数组的几种方法
  • 音视频及H264/H256编码相关原理
  • 关于Broken pipe异常的一点学习记录
  • 【小沐学GIS】GDAL库安装和使用(C++、Python)
  • 没有括号的字符串四则运算
  • android 水平居中对齐并举例
  • wordpress教程视频 wordpress教程网盘 wordpress教程推荐wordpress教程网
  • ERC314协议
  • 3.每日LeetCode-爬楼梯(Go,Java,Python)
  • 时间复杂度分析经典问题——最大子序列和
  • 10个最佳ES6特性 ES7与ES8的特性
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • git 常用命令
  • HTTP中的ETag在移动客户端的应用
  • JavaScript异步流程控制的前世今生
  • socket.io+express实现聊天室的思考(三)
  • spring cloud gateway 源码解析(4)跨域问题处理
  • Zsh 开发指南(第十四篇 文件读写)
  • 从0到1:PostCSS 插件开发最佳实践
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 配置 PM2 实现代码自动发布
  • 使用权重正则化较少模型过拟合
  • 手写一个CommonJS打包工具(一)
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • ​学习笔记——动态路由——IS-IS中间系统到中间系统(报文/TLV)​
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #Datawhale AI夏令营第4期#多模态大模型复盘
  • #Lua:Lua调用C++生成的DLL库
  • #单片机(TB6600驱动42步进电机)
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • $forceUpdate()函数
  • %@ page import=%的用法
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (39)STM32——FLASH闪存
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (CPU/GPU)粒子继承贴图颜色发射
  • (ISPRS,2021)具有遥感知识图谱的鲁棒深度对齐网络用于零样本和广义零样本遥感图像场景分类
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (力扣题库)跳跃游戏II(c++)
  • (七)理解angular中的module和injector,即依赖注入
  • (转)JAVA中的堆栈
  • (转)LINQ之路
  • (转)创业的注意事项
  • .net CHARTING图表控件下载地址
  • .NET Core 中插件式开发实现