0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙ArkTS声明式开发:跨平台支持列表【多态样式】 通用属性

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-06-07 09:48 次阅读

多态样式

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

说明:
开发前请熟悉鸿蒙开发指导文档 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

属性

名称参数类型描述
stateStylesStateStyles设置组件不同状态的样式。 从API version 9开始,该接口支持在ArkTS卡片中使用。

StateStyles接口说明

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

名称类型必填描述
normal()=>void组件无状态时的样式。
pressed()=>void组件按下状态的样式。
disabled()=>void组件禁用状态的样式。
focused()=>void组件获焦状态的样式。
clicked()=>void组件点击状态的样式。
selected10+()=>void组件选中状态的样式。HarmonyOSOpenHarmony鸿蒙文档籽料:mau123789是v直接拿
搜狗高速浏览器截图20240326151547.png

示例

// xxx.ets
@Entry
@Component
struct StyleExample {
  @State isEnable: boolean = true

  @Styles pressedStyles() {
        .backgroundColor("#ED6F21")
        .borderRadius(10)
        .borderStyle(BorderStyle.Dashed)
        .borderWidth(2)
        .borderColor("#33000000")
        .width(120)
        .height(30)
        .opacity(1)
  }

  @Styles disabledStyles() {
        .backgroundColor("#E5E5E5")
        .borderRadius(10)
        .borderStyle(BorderStyle.Solid)
        .borderWidth(2)
        .borderColor("#2a4c1919")
        .width(90)
        .height(25)
        .opacity(1)
  }

  @Styles normalStyles() {
        .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.isEnable
          console.log(`${this.isEnable}`)
        })
    }
    .width(350).height(300)
  }
}

zh-cn_image_0000001188742468

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 鸿蒙
    +关注

    关注

    55

    文章

    2090

    浏览量

    42261
收藏 人收藏

    评论

    相关推荐

    鸿蒙ArkTS声明开发:跨平台支持列表【Z序控制】 通用属性

    stack会重叠组件, 默认后定义的在最上面,具有较高zIndex值的元素在zIndex较小的元素前面
    的头像 发表于 06-03 14:53 497次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b>式<b class='flag-5'>开发</b>:跨<b class='flag-5'>平台</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【Z序控制】 <b class='flag-5'>通用</b><b class='flag-5'>属性</b>

    鸿蒙ArkTS的起源和简介

    新的声明开发范式,基于Skia的自绘制引擎构建可平台的独立的渲染能力。这是一种较为创新的方案,不过也有几点不足: Dart语言生态。尽管
    发表于 01-16 16:23

    鸿蒙入门实战-ArkTS开发

    声明UI基本概念 应用界面是由一个个页面组成,ArkTS是由ArkUI框架提供,用于以声明开发
    发表于 01-16 17:27

    鸿蒙语言ArkTS(更好的生产力与性能)

    ArkTS鸿蒙生态的应用开发语言 ArkTS提供了声明UI范式、状态管理
    发表于 02-17 15:56

    HUAWEI DevEco Studio 3.1版本发布,配套ArkTS声明开发全面升级

    HarmonyOS应用及服务的一站集成开发环境(IDE),DevEco Studio 3.1将配套ArkTS声明
    发表于 11-17 11:52

    HarmonyOS/OpenHarmony应用开发-ArkTS声明开发范式

    基于ArkTS声明开发范式的方舟开发框架是一套开发极简、高性能、
    发表于 01-17 15:09

    HarmonyOS/OpenHarmony应用开发-ArkTS语言基本语法说明

    的封装和复用UI描述。 @Extend/@Style:扩展内置组件和封装属性样式,更灵活地组合内置组件。 stateStyles:多态样式,可以依据组件的内部状态的不同,设置不同
    发表于 06-01 10:25

    HarmonyOS/OpenHarmony应用开发-ArkTS语言声明UI描述

    ArkTS声明方式组合和扩展组件来描述应用程序的UI,同时还提供了基本的属性、事件和子组件配置方法,帮助开发者实现应用交互逻辑。 一、创建组件 根据组件构造方法的不同,创建组件包含有
    发表于 06-05 15:26

    鸿蒙 OS 应用开发初体验

    的操作系统平台开发框架。HarmonyOS 的目标是实现设备的无缝协同和高性能。 DevEco Studio 对标 Android Studio,开发
    发表于 11-02 19:38

    鸿蒙开发ArkTS基础知识

    一、ArkTS简介 ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,匹配了鸿蒙的ArkUI框架,扩展了
    的头像 发表于 01-24 16:44 1169次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>之<b class='flag-5'>ArkTS</b>基础知识

    鸿蒙ArkTS声明开发:跨平台支持列表【显隐控制】 通用属性

    控制当前组件显示或隐藏。注意,即使组件处于隐藏状态,在页面刷新时仍存在重新创建过程,因此当对性能有严格要求时建议使用[条件渲染]代替。 默认值:Visibility.Visible 从API version 9开始,该接口支持ArkTS卡片中使用。
    的头像 发表于 06-03 14:46 356次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b>式<b class='flag-5'>开发</b>:跨<b class='flag-5'>平台</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【显隐控制】 <b class='flag-5'>通用</b><b class='flag-5'>属性</b>

    鸿蒙ArkTS声明开发:跨平台支持列表【形状裁剪】 通用属性

    参数为相应类型的组件,按指定的形状对当前组件进行裁剪;参数为boolean类型时,设置是否按照父容器边缘轮廓进行裁剪。 默认值:false 从API version 9开始,该接口支持ArkTS卡片中使用。
    的头像 发表于 06-04 15:22 159次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b>式<b class='flag-5'>开发</b>:跨<b class='flag-5'>平台</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【形状裁剪】 <b class='flag-5'>通用</b><b class='flag-5'>属性</b>

    鸿蒙ArkTS声明开发:跨平台支持列表【栅格设置】 通用属性

    默认占用列数,指useSizeType属性没有设置对应尺寸的列数(span)时,占用的栅格列数。
    的头像 发表于 06-05 09:28 180次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b>式<b class='flag-5'>开发</b>:跨<b class='flag-5'>平台</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【栅格设置】 <b class='flag-5'>通用</b><b class='flag-5'>属性</b>

    鸿蒙ArkTS声明开发:跨平台支持列表【组件内容模糊】 通用属性

    为当前组件提供内容模糊能力。 value: 内容模糊样式。模糊样式由模糊半径、蒙版颜色、蒙版透明度、饱和度、亮度五个参数组成。 options: 可选参数,内容模糊选项。
    的头像 发表于 06-10 18:32 379次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b>式<b class='flag-5'>开发</b>:跨<b class='flag-5'>平台</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【组件内容模糊】 <b class='flag-5'>通用</b><b class='flag-5'>属性</b>

    鸿蒙ArkTS声明开发:跨平台支持列表【文本通用

    文本通用属性目前只针对包含文本元素的组件,设置文本样式
    的头像 发表于 06-13 15:09 156次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b>式<b class='flag-5'>开发</b>:跨<b class='flag-5'>平台</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【文本<b class='flag-5'>通用</b>】