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

鸿蒙开发教程实战案例源码分享-好看的SwitchButton

鸿蒙开发教程实战案例源码分享-好看的SwitchButton

鸿蒙开发好看的自定义SwitchButton,也适用也开关按钮

一、效果图:

在这里插入图片描述

看视频效果更直观点:

鸿蒙开发教程实战案例源码分享-好看的SwitchButton

二、思路:

自定义组件,加上点动画效果

三、关键代码:
@ComponentV2
export struct SwitchButton{@Require @Param buttonTextList: ResourceStr[]@Event onClickUse: (i: number) => void@Param switchOne: number = 0@Param WidthBp: number = 0@Param buttonNum: '2'|'3' = '2'build() {Row(){Stack(){Button({ type: ButtonType.Capsule }).width(this.buttonNum == '3' ? '33%' : '50%').buttonSwitch(2, this.WidthBp < 2 ? 14 : 16, $r('app.color.switch_button'), FontWeight.Medium)Row(){Repeat<ResourceStr>(this.buttonTextList).each((ri: RepeatItem<ResourceStr>) => {Button(ri.item, { type: ButtonType.Capsule, stateEffect: false }).clickEffect(animationStyle.isClick()).fontColor(this.switchOne == ri.index ? $r("sys.color.font") :$r("sys.color.icon_tertiary")).buttonSwitch(2, this.WidthBp < 2 ? 14 : 16, Color.Transparent, this.switchOne == ri.index ? FontWeight.Bold : FontWeight.Medium).width(this.buttonNum == '3' ? 'auto' : '49%').onClick(()=> {animationStyle.AnimTo(this.onClickUse(ri.index), 0)})}).key((item: string | Resource) => item.toString())}.width('100%').borderRadius(100).justifyContent(FlexAlign.SpaceAround)}
四、项目demo结构图:

在这里插入图片描述

有需要完整源码demo的私信我,我每天都看私信的

http://www.lryc.cn/news/618516.html

相关文章:

  • [SC]SystemC中的SC_FORK和SC_JOIN用法详细介绍
  • 17、CryptoMamba论文笔记
  • 42.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--扩展功能--集成网关--网关集成认证(一)
  • UNet改进(32):结合CNN局部建模与Transformer全局感知
  • Day45--动态规划--115. 不同的子序列,583. 两个字符串的删除操作,72. 编辑距离
  • DeepSeek-R1-0528 推理模型完整指南:领先开源推理模型的运行平台与选择建议
  • XC7A15T-1FTG256C Xilinx AMD Artix-7 FPGA
  • Linux中Apache与Web之虚拟主机配置指南
  • git config的配置全局或局部仓库的参数: local, global, system
  • 【unity实战】使用Splines+DOTween制作弯曲手牌和抽牌动画效果
  • 有限元方法中的数值技术:行列式、求逆、矩阵方程
  • 【bug 解决】串口输出字符乱码的问题
  • 【Datawhale夏令营】多模态RAG学习
  • 【Bug经验分享】由jsonObject-TypeReference引发的序列化问题
  • 【昇腾】关于Atlas 200I A2加速模块macro0配置3路PCIE+1路SATA在hboot2中的一个bug_20250812
  • STM32_bug总结(TIM定时中断进不去和只进1次)
  • 高性能web服务器Nginx
  • 【Android】【bug】Json解析错误Expected BEGIN_OBJECT but was STRING...
  • linux 开机进入initramfs无法开机
  • 跨设备开发不再难:HarmonyOS 分布式任务管理应用全解析
  • 《Fast Automatic White Balancing Method by Color Histogram Stretching》论文笔记
  • 让齿轮与斑马线共舞:汽车文化驿站及安全教育基地的展陈实践
  • 农业智慧大屏系统 - Flask + Vue实现
  • 安全合规5--终端安全检测和防御技术
  • Python初学者笔记第二十二期 -- (JSON数据解析)
  • 【智慧城市】2025年湖北大学暑期实训优秀作品(3):基于WebGIS的南京市古遗迹旅游管理系统
  • 机器学习 [白板推导](十)[马尔可夫链蒙特卡洛法]
  • js高阶-总结精华版
  • [ 数据结构 ] 时间和空间复杂度
  • 机器学习之TF-IDF文本关键词提取