鸿蒙开发03样式相关介绍(二)

文章目录

  • 一、样式复用
    • 1.1 @Styles修饰符
    • 1.2 @Extend修饰符
  • 二、多态样式


一、样式复用

在页面开发过程中,会出出现大量重复的样式设置代码,可以使用@Styles和@Extend修饰符将帮助我们进行样式复用。

1.1 @Styles修饰符

@Styles装饰器可以将多条样式设置提炼成一个方法,直接在组件声明的位置调用。通过@Styles装饰器可以快速定义并复用自定义样式。

@Styles
function payWechatStyle(){.width('100%').height(50).borderRadius(4).backgroundColor("#00c168").onClick(()=>{promptAction.showToast({message: '微信支付成功'})})
}@Entry
@Component
struct StylesCase {@StylespayAliStyle(){.width('100%').height(50).borderRadius(4).backgroundColor("#ff1256e0").onClick(()=>{promptAction.showToast({message: '支付宝支付成功'})})}build() {Column({space: 20}){Row(){Button("微信支付", { type: ButtonType.Normal }).payWechatStyle().fontColor(Color.White)}.padding(20)Row(){Button("支付宝支付", { type: ButtonType.Normal }).payAliStyle().fontColor(Color.White)}.padding(20)Row(){Button("支付宝支付", { type: ButtonType.Normal }).payAliStyle().fontColor(Color.White)}.padding(20)}}
}

使用说明

  • 仅支持通用属性和通用事件
  • 可以定义在组件内(不需加function)或全局
  • 同时在组件内或全局定义时,组件内生效

限制条件

  • 方法中不能有参数
  • 不支持导出

1.2 @Extend修饰符

@Extend修饰符针对某类组件进行样式扩展,同样为了复用样式。

@Entry
@Component
struct ExtendCase {build() {Column({space: 20}){Button('支付宝支付').payButton('alipay')Button('微信支付').payButton('wechat')}.padding(20).width('100%')}
}@Extend(Button)
function payButton(type: 'alipay'|'wechat'){.type(ButtonType.Normal).fontColor(Color.White).width('100%').height(50).borderRadius(4).backgroundColor(type == 'wechat'? "#00c168" : "#ff1256e0").onClick(()=>{if (type == 'alipay') {promptAction.showToast({message:"支付宝支付成功"})}else{promptAction.showToast({message:"微信支付成功"})}})
}

使用说明

  • 只能定义在全局函数
  • 指定组件,只支持指定组件的私有属性、私有事件
  • 函数支持传参

限制条件

  • 不支持导出

二、多态样式

多态样式(stateStyles)根据组件内部状态的不同,快速设置不同样式。
ArkUI提供五种状态:

  • focused:获焦态
  • normal:正常态
  • pressed:按压态
  • disabled:不可用态
  • selected:选中态
@Entry
@Component
struct StateStylesCase {build() {Column({space: 20}){Row(){Text('你好!鸿蒙')}.padding(20).height(80).border({color: '#f3f4f5',width: 3}).borderRadius(4).stateStyles({normal: {.backgroundColor(Color.White)},pressed: {.backgroundColor('#eee')}}).width('100%')}.padding(20).justifyContent(FlexAlign.Center).width('100%').height('100%')}
}

设置normal和pressed状态时的背景颜色,按压时是#eee颜色,松开是白色。

使用说明
多态样式只支持通用属性的设置。

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

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

相关文章

装饰器模式与模板方法模式实现MyBatis-Plus QueryWrapper 扩展

pom <dependency><groupId>com.github.yulichang</groupId><artifactId>mybatis-plus-join-boot-starter</artifactId> <!-- MyBatis 联表查询 --> </dependency>MPJLambdaWrapperX /*** 拓展 MyBatis Plus Join QueryWrapper 类&…

05-031-自考数据结构(20331)- 哈希表 - 例题分析

哈希表考题主要涵盖四大类型:1)函数设计类(如除留余数法计算地址,需掌握质数p的选择技巧);2)冲突处理类(线性探测法要解决堆积现象,链地址法需绘制链表结构);3)性能分析类(重点计算ASL,理解装填因子α的影响规律);4)综合应用类(如设计ISBN查询系统,需结合实际问…

rustdesk 自建服务器 key不匹配

请确保id_ed25519文件的权限为&#xff1a; -rw------- 1 root root 88 Apr 31 10:02 id_ed25519在rustdesk安装目录执行命令&#xff1a; chmod 700 id_ed25519

Dify 深度集成 MCP实现灾害应急响应

一、架构设计 1.1 分层架构 #mermaid-svg-5dVNjmixTX17cCfg {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-5dVNjmixTX17cCfg .error-icon{fill:#552222;}#mermaid-svg-5dVNjmixTX17cCfg .error-text{fill:#552222…

AI与.NET技术实操系列(三):在 .NET 中使用大语言模型(LLMs)

1. 引言 在技术迅猛发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为人工智能领域的核心驱动力之一。从智能对话系统到自动化内容生成&#xff0c;LLMs的应用正在深刻改变我们的工作与生活方式。对于.NET开发者而言&#xff0c;掌…

一个极简的词法分析器实现

文章目录 推荐&#xff1a;Tiny Lexer - 一个极简的C语言词法分析器特点核心代码实现学习价值扩展建议 用Java实现一个简单的词法分析器完整实现代码代码解析示例输出扩展建议 用Go实现极简词法分析器完整实现代码代码解析示例输出扩展建议 最近两天搞一个DSL&#xff0c;不得不…

强制用户裸奔,微软封锁唯一后门操作

周末刚结束&#xff0c;那个常年将「用户为中心」挂嘴边的微软又双叒叕开始作妖&#xff01; 不错&#xff0c;大伙儿今后可能再没法通过「OOBE\BYPASSNRO」命令绕过微软强制联网要求了。 熟悉 Windows 11 操作系统的都知道&#xff0c;除硬件上诸多限制外&#xff1b; 软件层…

大模型备案:拦截关键词列表与敏感词库深度解析

随着《生成式人工智能服务管理暂行办法》正式实施&#xff0c;大模型上线备案成为企业合规运营的核心环节。其中&#xff0c;敏感词库建设与拦截关键词列表管理直接关系内容安全红线&#xff0c;今天我们就来详细解析一下大模型备案的这一部分&#xff0c;希望对想要做备案的朋…

快速上手Linux系统输入输出

一、管理系统中的输入输出 1.什么是重定向&#xff1f; 将原本要输出到屏幕上的内容&#xff0c;重新输入到其他设备中或文件中 重定向类型包括 输入重定向输出重定向 2.输入重定向 指定设备&#xff08;通常是文件或命令的执行结果&#xff09;来代替键盘作为新的输入设…

文小言全新升级!多模型协作与智能语音功能带来更流畅的AI体验

文小言全新升级&#xff01;多模型协作与智能语音功能带来更流畅的AI体验 在3月31日的百度AI DAY上&#xff0c;文小言正式宣布了一系列令人兴奋的品牌焕新与功能升级。此次更新不仅带来了全新的品牌视觉形象&#xff0c;更让文小言在智能助手的技术和用户体验方面迈上了一个新…

C++基础算法(插入排序)

1.插入排序 插入排序&#xff08;Insertion Sort&#xff09;介绍&#xff1a; 插入排序是一种简单直观的排序算法&#xff0c;它的工作原理类似于我们整理扑克牌的方式。 1.基本思想 插入排序的基本思想是&#xff1a; 1.将数组分为已排序和未排序两部分 2.每次从未排序部分…

k近邻算法K-Nearest Neighbors(KNN)

算法核心 KNN算法的核心思想是“近朱者赤&#xff0c;近墨者黑”。对于一个待分类或预测的样本点&#xff0c;它会查找训练集中与其距离最近的K个样本点&#xff08;即“最近邻”&#xff09;。然后根据这K个最近邻的标签信息来对当前样本进行分类或回归。 在分类任务中&#…

【Feign】⭐️使用 openFeign 时传递 MultipartFile 类型的参数参考

&#x1f4a5;&#x1f4a5;✈️✈️欢迎阅读本文章❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;本篇文章阅读大约耗时三分钟。 ⛳️motto&#xff1a;不积跬步、无以千里 &#x1f4cb;&#x1f4cb;&#x1f4cb;本文目录如下&#xff1a;&#x1f381;&#x1f381;&a…

zk基础—1.一致性原理和算法二

大纲 1.分布式系统特点 2.分布式系统的理论 3.两阶段提交Two-Phase Commit(2PC) 4.三阶段提交Three-Phase Commit(3PC) 5.Paxos岛的故事来对应ZooKeeper 6.Paxos算法推导过程 7.Paxos协议的核心思想 8.ZAB算法简述 6.Paxos算法推导过程 (1)Paxos的概念 (2)问题描述 …

216. 组合总和 III 回溯

目录 问题描述 解决思路 关键点 代码实现 代码解析 1. 初始化结果和路径 2. 深度优先搜索&#xff08;DFS&#xff09; 3. 遍历候选数字 4. 递归与回溯 示例分析 复杂度与优化 回溯算法三部曲 1. 路径选择&#xff1a;记录当前路径 2. 递归探索&#xff1a;进入下…

从AI大模型到MCP中台:构建下一代智能服务的核心架构

从AI大模型到MCP中台&#xff1a;构建下一代智能服务的核心架构 引言&#xff1a;AI大模型带来的服务重构革命 在ChatGPT掀起全球AI热潮的今天&#xff0c;大模型展现出的惊人能力正在重塑整个软件服务架构。但鲜为人知的是&#xff0c;真正决定AI服务成败的不仅是模型本身&a…

美团小程序 mtgsig1.2 拼好饭案例 分析 mtgsig

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 逆向分析 美团网页、小程序、app全是指…

【大模型基础_毛玉仁】5.5 模型编辑应用

目录 5.5 模型编辑应用5.5.1 精准模型更新5.5.2 保护被遗忘权5.5.3 提升模型安全 5.5 模型编辑应用 大语言模型面临更新成本高、隐私保护难、安全风险大等问题。模型编辑技术&#xff1a; 通过细粒度修改预训练模型&#xff0c;避免从头训练&#xff0c;降低更新成本&#xff…

揭秘:父子组件之间的传递

基础知识 组件与组件之间有三大方面的知识点&#xff1a; 子组件通过props defineProps&#xff08;{}&#xff09;接收父组件传递到参数和方法&#xff1b;子组件可以通过定义 emit 事件&#xff0c;向父组件发送事件&#xff1b;父组件调用子组件通过defineExpose 导出的方法…

微前端实现方案对比Qiankun VS npm组件

架构层面&#xff1a; 1、Qiankun是典型的微前端架构&#xff0c;侧重构建多个独立前端应用协同工作的架构&#xff0c;主应用负责自用用的加载、卸载和通信&#xff1b;子应用不限制&#xff0c;可以是VUE、React等&#xff1b; 2、Qiankun松耦合&#xff0c;各个自应用独立…